mesa: Implement a new GL_MESA_tile_raster_order extension.

The intent is to use this extension on vc4 to allow X11 to do overlapping
CopyArea() within a pixmap without first blitting the pixmap to a
temporary.  With associated glamor patches, improves x11perf
-copywinwin100 performance on a Raspberry Pi 3 from ~4700/sec to
~5130/sec, and is an even larger boost to uncomposited window movement
performance (most copywinwin100 copies don't overlap).

v2: Fix glIsEnabled() on the new enums.
v3: Drop the local spec since I'm upstreaming the spec.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Eric Anholt
2017-07-25 16:13:57 -07:00
parent 087b39a346
commit e676434856
11 changed files with 87 additions and 0 deletions
@@ -0,0 +1,13 @@
<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
<OpenGLAPI>
<!-- XXX: need an extension number -->
<category name="GL_MESA_tile_rasterizer_order">
<enum name="TILE_RASTER_ORDER_FIXED_MESA" value="0x8BB8"/>
<enum name="TILE_RASTER_ORDER_INCREASING_X_MESA" value="0x8BB9"/>
<enum name="TILE_RASTER_ORDER_INCREASING_Y_MESA" value="0x8BBA"/>
</category>
</OpenGLAPI>
+1
View File
@@ -210,6 +210,7 @@ API_XML = \
KHR_robustness.xml \
KHR_robustness_es.xml \
KHR_texture_compression_astc.xml \
MESA_tile_raster_order.xml \
NV_conditional_render.xml \
NV_primitive_restart.xml \
NV_texture_barrier.xml \