Welcome to ftp.nluug.nl Current directory: /NetBSD/NetBSD-release-9/xsrc/external/mit/xf86-video-intel-2014/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 10-May-2019 08:22 3.6K Makefile.in 10-May-2019 08:22 33K README 10-May-2019 08:22 1.7K atomic.h 10-May-2019 08:22 3.1K blt.c 10-May-2019 08:22 28K compiler.h 10-May-2019 08:22 3.0K debug.h 10-May-2019 08:22 1.5K gen2_render.c 10-May-2019 08:22 92K gen2_render.h 10-May-2019 08:22 28K gen3_render.c 10-May-2019 08:22 165K gen3_render.h 10-May-2019 08:22 55K gen4_common.c 10-May-2019 08:22 2.0K gen4_common.h 10-May-2019 08:22 1.7K gen4_render.c 10-May-2019 08:22 86K gen4_render.h 10-May-2019 08:22 78K gen4_source.c 10-May-2019 08:22 5.6K gen4_source.h 10-May-2019 08:22 424 gen4_vertex.c 10-May-2019 08:22 78K gen4_vertex.h 10-May-2019 08:22 514 gen5_render.c 10-May-2019 08:22 91K gen5_render.h 10-May-2019 08:22 82K gen6_common.c 10-May-2019 08:22 2.1K gen6_common.h 10-May-2019 08:22 4.6K gen6_render.c 10-May-2019 08:22 99K gen6_render.h 10-May-2019 08:22 59K gen7_render.c 10-May-2019 08:22 103K gen7_render.h 10-May-2019 08:22 53K gen8_eu.c 10-May-2019 08:22 34K gen8_eu.h 10-May-2019 08:22 886 gen8_render.c 10-May-2019 08:22 103K gen8_render.h 10-May-2019 08:22 45K gen8_vertex.c 10-May-2019 08:22 9.2K gen8_vertex.h 10-May-2019 08:22 337 kgem.c 10-May-2019 08:22 187K kgem.h 10-May-2019 08:22 22K kgem_debug.c 10-May-2019 08:22 17K kgem_debug.h 10-May-2019 08:22 1.0K kgem_debug_gen2.c 10-May-2019 08:22 20K kgem_debug_gen3.c 10-May-2019 08:22 43K kgem_debug_gen4.c 10-May-2019 08:22 18K kgem_debug_gen5.c 10-May-2019 08:22 18K kgem_debug_gen6.c 10-May-2019 08:22 31K kgem_debug_gen7.c 10-May-2019 08:22 17K rop.h 10-May-2019 08:22 6.3K sna.h 10-May-2019 08:22 31K sna_accel.c 10-May-2019 08:22 463K sna_acpi.c 10-May-2019 08:22 5.1K sna_blt.c 10-May-2019 08:22 114K sna_composite.c 10-May-2019 08:22 32K sna_cpu.c 10-May-2019 08:22 2.9K sna_cpuid.h 10-May-2019 08:22 2.1K sna_damage.c 10-May-2019 08:22 45K sna_damage.h 10-May-2019 08:22 8.9K sna_display.c 10-May-2019 08:22 194K sna_display_fake.c 10-May-2019 08:22 8.5K sna_dri2.c 10-May-2019 08:22 88K sna_dri3.c 10-May-2019 08:22 10K sna_driver.c 10-May-2019 08:22 34K sna_glyphs.c 10-May-2019 08:22 60K sna_gradient.c 10-May-2019 08:22 12K sna_io.c 10-May-2019 08:22 50K sna_module.h 10-May-2019 08:22 54 sna_present.c 10-May-2019 08:22 12K sna_reg.h 10-May-2019 08:22 2.8K sna_render.c 10-May-2019 08:22 61K sna_render.h 10-May-2019 08:22 21K sna_render_inline.h 10-May-2019 08:22 8.8K sna_stream.c 10-May-2019 08:22 4.0K sna_threads.c 10-May-2019 08:22 8.2K sna_tiling.c 10-May-2019 08:22 31K sna_transform.c 10-May-2019 08:22 5.4K sna_trapezoids.c 10-May-2019 08:22 32K sna_trapezoids.h 10-May-2019 08:22 11K sna_trapezoids_boxes.c 10-May-2019 08:22 38K sna_trapezoids_imprecise.c 10-May-2019 08:22 95K sna_trapezoids_mono.c 10-May-2019 08:22 39K sna_trapezoids_precise.c 10-May-2019 08:22 87K sna_vertex.c 10-May-2019 08:22 1.4K sna_video.c 10-May-2019 08:22 19K sna_video.h 10-May-2019 08:22 5.7K sna_video_hwmc.c 10-May-2019 08:22 6.4K sna_video_hwmc.h 10-May-2019 08:22 1.6K sna_video_overlay.c 10-May-2019 08:22 23K sna_video_sprite.c 10-May-2019 08:22 20K sna_video_textured.c 10-May-2019 08:22 11K xassert.h 10-May-2019 08:22 1.6K
NLUUG - Open Systems. Open Standards
Become a member
and get discounts on conferences and more, see the NLUUG website!