[NLUUG]   Welcome to ftp.nluug.nl
Current directory: /NetBSD/NetBSD-release-10/xsrc/external/mit/xf86-video-intel/dist/src/sna/
 
Current bandwidth utilization 1287.90 Mbit/s
Bandwidth utilization bar
Contents of README:
SandyBridge's New Acceleration
------------------------------

The guiding principle behind the design is to avoid GPU context switches.
On SandyBridge (and beyond), these are especially pernicious because the
RENDER and BLT engine are now on different rings and require
synchronisation of the various execution units when switching contexts.
They were not cheap on early generation, but with the increasing
complexity of the GPU, avoiding such serialisations is important.

Furthermore, we try very hard to avoid migrating between the CPU and GPU.
Every pixmap (apart from temporary "scratch" surfaces which we intend to
use on the GPU) is created in system memory. All operations are then done
upon this shadow copy until we are forced to move it onto the GPU. Such
migration can only be first triggered by: setting the pixmap as the
scanout (we obviously need a GPU buffer here), using the pixmap as a DRI
buffer (the client expects to perform hardware acceleration and we do not
want to disappoint) and lastly using the pixmap as a RENDER target. This
last is chosen because when we know we are going to perform hardware
acceleration and will continue to do so without fallbacks, using the GPU
is much, much faster than the CPU. The heuristic I chose therefore was
that if the application uses RENDER, i.e. cairo, then it will only be
using those paths and not intermixing core drawing operations and so
unlikely to trigger a fallback.

The complicating case is front-buffer rendering. So in order to accommodate
using RENDER on an application whilst running xterm without a composite
manager redirecting all the pixmaps to backing surfaces, we have to
perform damage tracking to avoid excess migration of portions of the
buffer.

Icon  Name                                                                   Last modified      Size  
[DIR] Parent Directory - [DIR] CVS/ 17-Dec-2022 21:58 - [DIR] brw/ 17-Dec-2022 21:58 - [DIR] fb/ 17-Dec-2022 21:58 - [TXT] Makefile.am 20-Mar-2019 07:34 3.7K [TXT] Makefile.in 20-Mar-2019 08:17 41K [TXT] README 21-Mar-2014 23:42 1.7K [TXT] atomic.h 21-Mar-2014 23:42 3.1K [TXT] blt.c 20-Mar-2019 07:34 46K [TXT] compiler.h 20-Mar-2019 07:34 3.2K [TXT] debug.h 20-Mar-2019 07:34 1.5K [TXT] gen2_render.c 20-Mar-2019 07:34 100K [TXT] gen2_render.h 21-Mar-2014 23:42 28K [TXT] gen3_render.c 20-Mar-2019 07:34 169K [TXT] gen3_render.h 21-Mar-2014 23:42 55K [TXT] gen4_common.c 05-Nov-2014 18:56 2.0K [TXT] gen4_common.h 05-Nov-2014 18:56 1.7K [TXT] gen4_render.c 20-Mar-2019 07:34 88K [TXT] gen4_render.h 20-Mar-2019 07:34 78K [TXT] gen4_source.c 21-Mar-2014 23:42 5.6K [TXT] gen4_source.h 21-Mar-2014 23:42 424 [TXT] gen4_vertex.c 16-Jan-2015 22:27 78K [TXT] gen4_vertex.h 05-Nov-2014 18:56 514 [TXT] gen5_render.c 20-Mar-2019 07:34 93K [TXT] gen5_render.h 20-Mar-2019 07:34 82K [TXT] gen6_common.c 05-Nov-2014 18:56 2.1K [TXT] gen6_common.h 20-Mar-2019 07:34 5.0K [TXT] gen6_render.c 20-Mar-2019 07:34 101K [TXT] gen6_render.h 21-Mar-2014 23:42 59K [TXT] gen7_render.c 20-Mar-2019 07:34 106K [   ] gen7_render.h 21-Mar-2014 23:42 53K [TXT] gen8_eu.c 16-Jan-2015 22:27 34K [TXT] gen8_eu.h 05-Nov-2014 18:56 886 [TXT] gen8_render.c 20-Mar-2019 07:34 106K [   ] gen8_render.h 20-Mar-2019 07:34 45K [TXT] gen8_vertex.c 05-Nov-2014 18:56 9.2K [TXT] gen8_vertex.h 05-Nov-2014 18:56 337 [TXT] gen9_render.c 20-Mar-2019 07:34 109K [   ] gen9_render.h 20-Mar-2019 07:34 45K [TXT] git_version.h.in 20-Mar-2019 07:34 47 [TXT] kgem.c 20-Mar-2019 08:17 203K [TXT] kgem.h 20-Mar-2019 07:34 23K [TXT] kgem_debug.c 05-Nov-2014 18:56 17K [TXT] kgem_debug.h 21-Mar-2014 23:42 1.0K [TXT] kgem_debug_gen2.c 05-Nov-2014 18:56 20K [TXT] kgem_debug_gen3.c 21-Mar-2014 23:42 43K [TXT] kgem_debug_gen4.c 20-Mar-2019 07:34 18K [TXT] kgem_debug_gen5.c 20-Mar-2019 07:34 18K [TXT] kgem_debug_gen6.c 20-Mar-2019 07:34 31K [TXT] kgem_debug_gen7.c 21-Mar-2014 23:42 17K [   ] meson.build 20-Mar-2019 07:34 2.7K [   ] rop.h 21-Mar-2014 23:42 6.3K [TXT] sna.h 20-Mar-2019 07:49 35K [TXT] sna_accel.c 15-Jul-2022 06:13 472K [TXT] sna_acpi.c 20-Mar-2019 07:49 5.1K [TXT] sna_blt.c 20-Mar-2019 07:34 115K [TXT] sna_composite.c 20-Mar-2019 07:34 33K [TXT] sna_cpu.c 05-Nov-2014 18:56 2.9K [TXT] sna_cpuid.h 05-Nov-2014 18:56 2.1K [TXT] sna_damage.c 05-Nov-2014 18:56 45K [TXT] sna_damage.h 20-Mar-2019 07:34 9.0K [TXT] sna_display.c 20-Mar-2019 07:49 248K [TXT] sna_display_fake.c 20-Mar-2019 07:34 8.5K [TXT] sna_dri2.c 20-Mar-2019 07:49 103K [TXT] sna_dri3.c 20-Mar-2019 07:34 11K [TXT] sna_driver.c 20-Mar-2019 07:49 37K [TXT] sna_glyphs.c 20-Mar-2019 07:34 60K [TXT] sna_gradient.c 05-Nov-2014 18:56 12K [TXT] sna_io.c 20-Mar-2019 07:34 50K [   ] sna_module.h 21-Mar-2014 23:42 54 [TXT] sna_present.c 20-Mar-2019 07:34 27K [TXT] sna_reg.h 05-Nov-2014 18:56 2.8K [TXT] sna_render.c 20-Mar-2019 07:34 63K [TXT] sna_render.h 20-Mar-2019 07:34 23K [TXT] sna_render_inline.h 20-Mar-2019 07:34 9.3K [TXT] sna_stream.c 05-Nov-2014 18:56 4.0K [TXT] sna_threads.c 05-Nov-2014 18:56 8.2K [TXT] sna_tiling.c 20-Mar-2019 07:34 31K [TXT] sna_transform.c 16-Jan-2015 22:27 5.4K [TXT] sna_trapezoids.c 16-Jan-2015 22:27 32K [TXT] sna_trapezoids.h 16-Jan-2015 22:27 11K [TXT] sna_trapezoids_boxes.c 20-Mar-2019 07:34 38K [TXT] sna_trapezoids_imprecise.c 20-Mar-2019 07:34 94K [TXT] sna_trapezoids_mono.c 20-Mar-2019 07:34 41K [TXT] sna_trapezoids_precise.c 20-Mar-2019 07:34 86K [TXT] sna_vertex.c 05-Nov-2014 18:56 1.4K [TXT] sna_video.c 20-Mar-2019 07:34 25K [TXT] sna_video.h 15-Jul-2022 06:13 7.7K [TXT] sna_video_hwmc.c 16-Jan-2015 22:27 6.4K [TXT] sna_video_hwmc.h 21-Mar-2014 23:42 1.6K [TXT] sna_video_overlay.c 20-Mar-2019 07:34 22K [TXT] sna_video_sprite.c 20-Mar-2019 07:34 25K [TXT] sna_video_textured.c 20-Mar-2019 07:34 12K [TXT] xassert.h 20-Mar-2019 07:34 2.0K

NLUUG - Open Systems. Open Standards
Become a member and get discounts on conferences and more, see the NLUUG website!