![]() |
Welcome to ftp.nluug.nl Current directory: /pub/os/NetBSD/NetBSD-release-9/xsrc/external/mit/xf86-video-intel/dist/src/sna/ |
|
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. |
Name Last modified Size
Parent Directory -
CVS/ 19-Mar-2020 23:41 -
brw/ 19-Mar-2020 23:40 -
fb/ 19-Mar-2020 23:40 -
Makefile.am 20-Mar-2019 07:34 3.7K
Makefile.in 20-Mar-2019 08:17 41K
README 21-Mar-2014 23:42 1.7K
atomic.h 21-Mar-2014 23:42 3.1K
blt.c 20-Mar-2019 07:34 46K
compiler.h 20-Mar-2019 07:34 3.2K
debug.h 20-Mar-2019 07:34 1.5K
gen2_render.c 20-Mar-2019 07:34 100K
gen2_render.h 21-Mar-2014 23:42 28K
gen3_render.c 20-Mar-2019 07:34 169K
gen3_render.h 21-Mar-2014 23:42 55K
gen4_common.c 05-Nov-2014 18:56 2.0K
gen4_common.h 05-Nov-2014 18:56 1.7K
gen4_render.c 20-Mar-2019 07:34 88K
gen4_render.h 20-Mar-2019 07:34 78K
gen4_source.c 21-Mar-2014 23:42 5.6K
gen4_source.h 21-Mar-2014 23:42 424
gen4_vertex.c 16-Jan-2015 22:27 78K
gen4_vertex.h 05-Nov-2014 18:56 514
gen5_render.c 20-Mar-2019 07:34 93K
gen5_render.h 20-Mar-2019 07:34 82K
gen6_common.c 05-Nov-2014 18:56 2.1K
gen6_common.h 20-Mar-2019 07:34 5.0K
gen6_render.c 20-Mar-2019 07:34 101K
gen6_render.h 21-Mar-2014 23:42 59K
gen7_render.c 20-Mar-2019 07:34 106K
gen7_render.h 21-Mar-2014 23:42 53K
gen8_eu.c 16-Jan-2015 22:27 34K
gen8_eu.h 05-Nov-2014 18:56 886
gen8_render.c 20-Mar-2019 07:34 106K
gen8_render.h 20-Mar-2019 07:34 45K
gen8_vertex.c 05-Nov-2014 18:56 9.2K
gen8_vertex.h 05-Nov-2014 18:56 337
gen9_render.c 20-Mar-2019 07:34 109K
gen9_render.h 20-Mar-2019 07:34 45K
git_version.h.in 20-Mar-2019 07:34 47
kgem.c 20-Mar-2019 08:17 203K
kgem.h 20-Mar-2019 07:34 23K
kgem_debug.c 05-Nov-2014 18:56 17K
kgem_debug.h 21-Mar-2014 23:42 1.0K
kgem_debug_gen2.c 05-Nov-2014 18:56 20K
kgem_debug_gen3.c 21-Mar-2014 23:42 43K
kgem_debug_gen4.c 20-Mar-2019 07:34 18K
kgem_debug_gen5.c 20-Mar-2019 07:34 18K
kgem_debug_gen6.c 20-Mar-2019 07:34 31K
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
sna.h 20-Mar-2019 07:49 35K
sna_accel.c 20-Mar-2019 08:17 472K
sna_acpi.c 20-Mar-2019 07:49 5.1K
sna_blt.c 20-Mar-2019 07:34 115K
sna_composite.c 20-Mar-2019 07:34 33K
sna_cpu.c 05-Nov-2014 18:56 2.9K
sna_cpuid.h 05-Nov-2014 18:56 2.1K
sna_damage.c 05-Nov-2014 18:56 45K
sna_damage.h 20-Mar-2019 07:34 9.0K
sna_display.c 20-Mar-2019 07:49 248K
sna_display_fake.c 20-Mar-2019 07:34 8.5K
sna_dri2.c 20-Mar-2019 07:49 103K
sna_dri3.c 20-Mar-2019 07:34 11K
sna_driver.c 20-Mar-2019 07:49 37K
sna_glyphs.c 20-Mar-2019 07:34 60K
sna_gradient.c 05-Nov-2014 18:56 12K
sna_io.c 20-Mar-2019 07:34 50K
sna_module.h 21-Mar-2014 23:42 54
sna_present.c 20-Mar-2019 07:34 27K
sna_reg.h 05-Nov-2014 18:56 2.8K
sna_render.c 20-Mar-2019 07:34 63K
sna_render.h 20-Mar-2019 07:34 23K
sna_render_inline.h 20-Mar-2019 07:34 9.3K
sna_stream.c 05-Nov-2014 18:56 4.0K
sna_threads.c 05-Nov-2014 18:56 8.2K
sna_tiling.c 20-Mar-2019 07:34 31K
sna_transform.c 16-Jan-2015 22:27 5.4K
sna_trapezoids.c 16-Jan-2015 22:27 32K
sna_trapezoids.h 16-Jan-2015 22:27 11K
sna_trapezoids_boxes.c 20-Mar-2019 07:34 38K
sna_trapezoids_imprecise.c 20-Mar-2019 07:34 94K
sna_trapezoids_mono.c 20-Mar-2019 07:34 41K
sna_trapezoids_precise.c 20-Mar-2019 07:34 86K
sna_vertex.c 05-Nov-2014 18:56 1.4K
sna_video.c 20-Mar-2019 07:34 25K
sna_video.h 20-Mar-2019 07:34 7.5K
sna_video_hwmc.c 16-Jan-2015 22:27 6.4K
sna_video_hwmc.h 21-Mar-2014 23:42 1.6K
sna_video_overlay.c 20-Mar-2019 07:34 22K
sna_video_sprite.c 20-Mar-2019 07:34 25K
sna_video_textured.c 20-Mar-2019 07:34 12K
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!