[Mesa-dev] [PATCH v4 6/7] mesa: add INTEL_blackhole_render

Lionel Landwerlin lionel.g.landwerlin at intel.com
Wed Jun 20 17:25:33 UTC 2018


v2: Implement missing Enable/Disable (Emil)

v3: Drop unused NewIntelBlackholeRender (Ken)

v4: Bring back NewIntelBlackholeRender as i965 implementation uses it
    again (Lionel)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/mesa/main/enable.c           | 14 ++++++++++++++
 src/mesa/main/extensions_table.h |  1 +
 src/mesa/main/mtypes.h           |  8 ++++++++
 3 files changed, 23 insertions(+)

diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index d1b2f3a9625..7b482bdf5db 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -1137,6 +1137,16 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
          ctx->Color.BlendCoherent = state;
          break;
 
+      case GL_BLACKHOLE_RENDER_INTEL:
+         if (!_mesa_has_INTEL_blackhole_render(ctx))
+            goto invalid_enum_error;
+         if (ctx->IntelBlackholeRender == state)
+            return;
+         FLUSH_VERTICES(ctx, 0);
+         ctx->NewDriverState |= ctx->DriverFlags.NewIntelBlackholeRender;
+         ctx->IntelBlackholeRender = state;
+         break;
+
       default:
          goto invalid_enum_error;
    }
@@ -1776,6 +1786,10 @@ _mesa_IsEnabled( GLenum cap )
          CHECK_EXTENSION(MESA_tile_raster_order);
          return ctx->TileRasterOrderIncreasingY;
 
+      case GL_BLACKHOLE_RENDER_INTEL:
+         CHECK_EXTENSION(INTEL_blackhole_render);
+         return ctx->IntelBlackholeRender;
+
       default:
          goto invalid_enum_error;
    }
diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
index 1c55df8a228..cb41aa8be4a 100644
--- a/src/mesa/main/extensions_table.h
+++ b/src/mesa/main/extensions_table.h
@@ -309,6 +309,7 @@ EXT(IBM_texture_mirrored_repeat             , dummy_true
 
 EXT(INGR_blend_func_separate                , EXT_blend_func_separate                , GLL,  x ,  x ,  x , 1999)
 
+EXT(INTEL_blackhole_render                  , INTEL_blackhole_render                 ,  30,  30,  x , ES2, 2018)
 EXT(INTEL_conservative_rasterization        , INTEL_conservative_rasterization       ,  x , GLC,  x ,  31, 2013)
 EXT(INTEL_performance_query                 , INTEL_performance_query                , GLL, GLC,  x , ES2, 2013)
 
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 220751ba7bb..605b4973f13 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -4240,6 +4240,7 @@ struct gl_extensions
    GLboolean ATI_fragment_shader;
    GLboolean ATI_separate_stencil;
    GLboolean GREMEDY_string_marker;
+   GLboolean INTEL_blackhole_render;
    GLboolean INTEL_conservative_rasterization;
    GLboolean INTEL_performance_query;
    GLboolean KHR_blend_equation_advanced;
@@ -4585,6 +4586,11 @@ struct gl_driver_flags
 
    /** Programmable sample location state for gl_context::DrawBuffer */
    uint64_t NewSampleLocations;
+
+   /**
+    * gl_context::IntelBlackholeRender
+    */
+   uint64_t NewIntelBlackholeRender;
 };
 
 struct gl_buffer_binding
@@ -5006,6 +5012,8 @@ struct gl_context
    GLfloat ConservativeRasterDilate;
    GLenum16 ConservativeRasterMode;
 
+   GLboolean IntelBlackholeRender; /**< GL_INTEL_blackhole_render */
+
    /** Does glVertexAttrib(0) alias glVertex()? */
    bool _AttribZeroAliasesVertex;
 
-- 
2.17.1



More information about the mesa-dev mailing list