Home | History | Annotate | only in /xsrc/external/mit/xf86-video-intel/dist/src/sna
Up to higher level directory
NameDateSize
atomic.h21-Mar-20143.1K
blt.c20-Mar-201946.2K
brw/19-Feb-2026
compiler.h20-Mar-20193.2K
debug.h20-Mar-20191.5K
fb/19-Feb-2026
gen2_render.c20-Mar-2019100.5K
gen2_render.h21-Mar-201428.1K
gen3_render.c20-Mar-2019168.7K
gen3_render.h21-Mar-201455.1K
gen4_common.c05-Nov-20142K
gen4_common.h05-Nov-20141.7K
gen4_render.c20-Mar-201988.3K
gen4_render.h20-Mar-201978.5K
gen4_source.c21-Mar-20145.6K
gen4_source.h21-Mar-2014424
gen4_vertex.c16-Jan-201577.8K
gen4_vertex.h05-Nov-2014514
gen5_render.c20-Mar-201992.8K
gen5_render.h20-Mar-201981.9K
gen6_common.c05-Nov-20142.1K
gen6_common.h20-Mar-20195K
gen6_render.c20-Mar-2019101K
gen6_render.h21-Mar-201458.7K
gen7_render.c20-Mar-2019105.7K
gen7_render.h21-Mar-201453.2K
gen8_eu.c16-Jan-201533.9K
gen8_eu.h05-Nov-2014886
gen8_render.c20-Mar-2019106.3K
gen8_render.h20-Mar-201945.2K
gen8_vertex.c05-Nov-20149.2K
gen8_vertex.h05-Nov-2014337
gen9_render.c20-Mar-2019108.8K
gen9_render.h20-Mar-201945.5K
git_version.h.in20-Mar-201947
kgem.c20-Mar-2019203.2K
kgem.h20-Mar-201922.9K
kgem_debug.c05-Nov-201417.3K
kgem_debug.h21-Mar-20141K
kgem_debug_gen2.c05-Nov-201420.1K
kgem_debug_gen3.c21-Mar-201443.3K
kgem_debug_gen4.c20-Mar-201918.3K
kgem_debug_gen5.c20-Mar-201917.8K
kgem_debug_gen6.c20-Mar-201931K
kgem_debug_gen7.c21-Mar-201417.3K
Makefile.am20-Mar-20193.7K
Makefile.in20-Mar-201940.8K
meson.build20-Mar-20192.7K
README21-Mar-20141.7K
rop.h21-Mar-20146.3K
sna.h20-Mar-201935.2K
sna_accel.c15-Jul-2022472K
sna_acpi.c20-Mar-20195.1K
sna_blt.c20-Mar-2019115K
sna_composite.c20-Mar-201932.7K
sna_cpu.c05-Nov-20142.9K
sna_cpuid.h05-Nov-20142.1K
sna_damage.c05-Nov-201445.3K
sna_damage.h20-Mar-20199K
sna_display.c20-Mar-2019247.5K
sna_display_fake.c20-Mar-20198.5K
sna_dri2.c20-Mar-2019102.7K
sna_dri3.c20-Mar-201910.6K
sna_driver.c20-Mar-201936.6K
sna_glyphs.c20-Mar-201960.3K
sna_gradient.c05-Nov-201412K
sna_io.c20-Mar-201950.4K
sna_module.h21-Mar-201454
sna_present.c20-Mar-201927K
sna_reg.h05-Nov-20142.8K
sna_render.c20-Mar-201962.5K
sna_render.h20-Mar-201922.7K
sna_render_inline.h20-Mar-20199.3K
sna_stream.c05-Nov-20144K
sna_threads.c05-Nov-20148.2K
sna_tiling.c20-Mar-201931.4K
sna_transform.c16-Jan-20155.4K
sna_trapezoids.c16-Jan-201531.9K
sna_trapezoids.h16-Jan-201510.8K
sna_trapezoids_boxes.c20-Mar-201938.5K
sna_trapezoids_imprecise.c20-Mar-201993.7K
sna_trapezoids_mono.c20-Mar-201941.1K
sna_trapezoids_precise.c20-Mar-201985.7K
sna_vertex.c05-Nov-20141.4K
sna_video.c20-Mar-201925.1K
sna_video.h12-Nov-20257.7K
sna_video_hwmc.c16-Jan-20156.4K
sna_video_hwmc.h21-Mar-20141.6K
sna_video_overlay.c20-Mar-201922.3K
sna_video_sprite.c20-Mar-201925.5K
sna_video_textured.c20-Mar-201912.3K
xassert.h20-Mar-20192K

README

      1 SandyBridge's New Acceleration
      2 ------------------------------
      3 
      4 The guiding principle behind the design is to avoid GPU context switches.
      5 On SandyBridge (and beyond), these are especially pernicious because the
      6 RENDER and BLT engine are now on different rings and require
      7 synchronisation of the various execution units when switching contexts.
      8 They were not cheap on early generation, but with the increasing
      9 complexity of the GPU, avoiding such serialisations is important.
     10 
     11 Furthermore, we try very hard to avoid migrating between the CPU and GPU.
     12 Every pixmap (apart from temporary "scratch" surfaces which we intend to
     13 use on the GPU) is created in system memory. All operations are then done
     14 upon this shadow copy until we are forced to move it onto the GPU. Such
     15 migration can only be first triggered by: setting the pixmap as the
     16 scanout (we obviously need a GPU buffer here), using the pixmap as a DRI
     17 buffer (the client expects to perform hardware acceleration and we do not
     18 want to disappoint) and lastly using the pixmap as a RENDER target. This
     19 last is chosen because when we know we are going to perform hardware
     20 acceleration and will continue to do so without fallbacks, using the GPU
     21 is much, much faster than the CPU. The heuristic I chose therefore was
     22 that if the application uses RENDER, i.e. cairo, then it will only be
     23 using those paths and not intermixing core drawing operations and so
     24 unlikely to trigger a fallback.
     25 
     26 The complicating case is front-buffer rendering. So in order to accommodate
     27 using RENDER on an application whilst running xterm without a composite
     28 manager redirecting all the pixmaps to backing surfaces, we have to
     29 perform damage tracking to avoid excess migration of portions of the
     30 buffer.
     31