Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> --- include/GL/glext.h | 5 +++++ include/GLES2/gl2ext.h | 5 +++++ src/mapi/glapi/registry/gl.xml | 8 +++++++- src/mesa/main/clear.c | 2 +- src/mesa/main/enable.c | 10 ++++++++++ src/mesa/main/extensions_table.h | 1 + src/mesa/main/mtypes.h | 7 +++++++ 7 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/include/GL/glext.h b/include/GL/glext.h index 75fd1f61185..5584f03693b 100644 --- a/include/GL/glext.h +++ b/include/GL/glext.h @@ -9099,6 +9099,11 @@ GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRG #define GL_INTERLACE_READ_INGR 0x8568 #endif /* GL_INGR_interlace_read */ +#ifndef GL_INTEL_blackhole_render +#define GL_INTEL_blackhole_render 1 +#define GL_BLACKHOLE_RENDER_INTEL 0x83FC +#endif /* GL_INTEL_blackhole_render */ + #ifndef GL_INTEL_conservative_rasterization #define GL_INTEL_conservative_rasterization 1 #define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE diff --git a/include/GLES2/gl2ext.h b/include/GLES2/gl2ext.h index a7d19a1fc83..8f23ba27084 100644 --- a/include/GLES2/gl2ext.h +++ b/include/GLES2/gl2ext.h @@ -2275,6 +2275,11 @@ GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, #define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B #endif /* GL_IMG_texture_filter_cubic */ +#ifndef GL_INTEL_blackhole_render +#define GL_INTEL_blackhole_render 1 +#define GL_BLACKHOLE_RENDER_INTEL 0x83FC +#endif /* GL_INTEL_blackhole_render */ + #ifndef GL_INTEL_conservative_rasterization #define GL_INTEL_conservative_rasterization 1 #define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE diff --git a/src/mapi/glapi/registry/gl.xml b/src/mapi/glapi/registry/gl.xml index 833478aa515..226f983c428 100644 --- a/src/mapi/glapi/registry/gl.xml +++ b/src/mapi/glapi/registry/gl.xml @@ -4518,7 +4518,8 @@ typedef unsigned int GLhandleARB; <enum value="0x83F9" name="GL_PERFQUERY_DONOT_FLUSH_INTEL"/> <enum value="0x83FA" name="GL_PERFQUERY_FLUSH_INTEL"/> <enum value="0x83FB" name="GL_PERFQUERY_WAIT_INTEL"/> - <unused start="0x83FC" end="0x83FD" vendor="INTEL"/> + <enum value="0x83FC" name="GL_BLACKHOLE_RENDER_INTEL"/> + <unused start="0x83FD" vendor="INTEL"/> <enum value="0x83FE" name="GL_CONSERVATIVE_RASTERIZATION_INTEL"/> <enum value="0x83FF" name="GL_TEXTURE_MEMORY_LAYOUT_INTEL"/> </enums> @@ -44046,6 +44047,11 @@ typedef unsigned int GLhandleARB; <command name="glMapTexture2DINTEL"/> </require> </extension> + <extension name="GL_INTEL_blackhole_render" supported="gl|glcore|gles2"> + <require> + <enum name="GL_BLACKHOLE_RENDER_INTEL"/> + </require> + </extension> <extension name="GL_INTEL_parallel_arrays" supported="gl"> <require> <enum name="GL_PARALLEL_ARRAYS_INTEL"/> diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c index 6beff9ed842..e9ab59b7116 100644 --- a/src/mesa/main/clear.c +++ b/src/mesa/main/clear.c @@ -175,7 +175,7 @@ clear(struct gl_context *ctx, GLbitfield mask, bool no_error) return; } - if (ctx->RasterDiscard) + if (ctx->RasterDiscard || ctx->IntelBlackholeRender) return; if (ctx->RenderMode == GL_RENDER) { diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c index 7625a4c9577..8d16f6d3716 100644 --- a/src/mesa/main/enable.c +++ b/src/mesa/main/enable.c @@ -1127,6 +1127,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; } diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h index 492f7c3d20a..3c1b9a8d803 100644 --- a/src/mesa/main/extensions_table.h +++ b/src/mesa/main/extensions_table.h @@ -307,6 +307,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 , GLL, GLC, 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 734fefc97f4..960283612c8 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -4324,6 +4324,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; @@ -4693,6 +4694,11 @@ struct gl_driver_flags /** Shader constants (uniforms, program parameters, state constants) */ uint64_t NewShaderConstants[MESA_SHADER_STAGES]; + + /** + * gl_context::IntelBlackholeRender + */ + uint64_t NewIntelBlackholeRender; }; struct gl_buffer_binding @@ -5109,6 +5115,7 @@ struct gl_context GLboolean RasterDiscard; /**< GL_RASTERIZER_DISCARD */ GLboolean IntelConservativeRasterization; /**< GL_INTEL_CONSERVATIVE_RASTERIZATION */ + GLboolean IntelBlackholeRender; /**< GL_INTEL_blackhole_render */ /** Does glVertexAttrib(0) alias glVertex()? */ bool _AttribZeroAliasesVertex; -- 2.16.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev