diff options
author | Fredrik Höglund <fredrik@kde.org> | 2017-07-19 16:35:40 +0200 |
---|---|---|
committer | Fredrik Höglund <fredrik@kde.org> | 2017-07-19 16:35:40 +0200 |
commit | d1b5c02315641455389b7e7bde45d61505128b94 (patch) | |
tree | f0673cdcd5c0d1726381159cc2f0f145ac840489 | |
parent | b359957469008665018e3cf2d44af8cdead01b22 (diff) |
mesa: Add GL_MESA_simulate_graphics_resetsimulate-graphics-reset
This extension adds a glSimulateGraphicsResetMESA entry point,
which when called makes the context behave as if a graphics reset
has occurred.
The status parameter is the status that will be returned by
glGetGraphicsResetStatus.
-rw-r--r-- | src/mapi/glapi/gen/MESA_simulate_graphics_reset.xml | 10 | ||||
-rw-r--r-- | src/mapi/glapi/gen/Makefile.am | 1 | ||||
-rw-r--r-- | src/mapi/glapi/gen/gl_API.xml | 2 | ||||
-rw-r--r-- | src/mapi/glapi/tests/check_table.cpp | 1 | ||||
-rw-r--r-- | src/mesa/main/context.h | 3 | ||||
-rw-r--r-- | src/mesa/main/extensions_table.h | 1 | ||||
-rw-r--r-- | src/mesa/main/mtypes.h | 5 | ||||
-rw-r--r-- | src/mesa/main/robustness.c | 21 | ||||
-rw-r--r-- | src/mesa/main/tests/dispatch_sanity.cpp | 6 |
9 files changed, 50 insertions, 0 deletions
diff --git a/src/mapi/glapi/gen/MESA_simulate_graphics_reset.xml b/src/mapi/glapi/gen/MESA_simulate_graphics_reset.xml new file mode 100644 index 0000000000..04080110b7 --- /dev/null +++ b/src/mapi/glapi/gen/MESA_simulate_graphics_reset.xml @@ -0,0 +1,10 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd"> + +<OpenGLAPI> +<category name="GL_MESA_simulate_graphics_reset" number="0"> + <function name="SimulateGraphicsResetMESA" es2="2.0"> + <param name="status" type="GLenum"/> + </function> +</category> +</OpenGLAPI> diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am index bd04519f80..9473b87d57 100644 --- a/src/mapi/glapi/gen/Makefile.am +++ b/src/mapi/glapi/gen/Makefile.am @@ -208,6 +208,7 @@ API_XML = \ KHR_robustness.xml \ KHR_robustness_es.xml \ KHR_texture_compression_astc.xml \ + MESA_simulate_graphics_reset.xml \ NV_conditional_render.xml \ NV_primitive_restart.xml \ NV_texture_barrier.xml \ diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 18839ec70c..fb3a273a20 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -13060,6 +13060,8 @@ <xi:include href="NV_vdpau_interop.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> +<xi:include href="MESA_simulate_graphics_reset.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + <xi:include href="GL4x.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> </OpenGLAPI> diff --git a/src/mapi/glapi/tests/check_table.cpp b/src/mapi/glapi/tests/check_table.cpp index 09bf4f3585..311ec5f7cf 100644 --- a/src/mapi/glapi/tests/check_table.cpp +++ b/src/mapi/glapi/tests/check_table.cpp @@ -1509,6 +1509,7 @@ const struct name_offset known_dispatch[] = { { "glGetQueryObjectui64v", _O(GetQueryObjectui64v) }, { "glEGLImageTargetRenderbufferStorageOES", _O(EGLImageTargetRenderbufferStorageOES) }, { "glEGLImageTargetTexture2DOES", _O(EGLImageTargetTexture2DOES) }, + { "glSimulateGraphicsResetMESA", _O(SimulateGraphicsResetMESA) }, { NULL, 0 } }; diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h index 4f75f57713..ad87c10381 100644 --- a/src/mesa/main/context.h +++ b/src/mesa/main/context.h @@ -170,6 +170,9 @@ _mesa_Finish( void ); extern void GLAPIENTRY _mesa_Flush( void ); +extern void GLAPIENTRY +_mesa_SimulateGraphicsResetMESA(GLenum status); + /*@}*/ diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h index 757b7bf942..f4e58f9adf 100644 --- a/src/mesa/main/extensions_table.h +++ b/src/mesa/main/extensions_table.h @@ -312,6 +312,7 @@ EXT(KHR_texture_compression_astc_sliced_3d , KHR_texture_compression_astc_slice EXT(MESA_pack_invert , MESA_pack_invert , GLL, GLC, x , x , 2002) EXT(MESA_shader_integer_functions , MESA_shader_integer_functions , GLL, GLC, x , 30, 2016) +EXT(MESA_simulate_graphics_reset , dummy_true , GLL, GLC, x , ES2, 2017) EXT(MESA_texture_signed_rgba , EXT_texture_snorm , GLL, GLC, x , x , 2009) EXT(MESA_window_pos , dummy_true , GLL, x , x , x , 2000) EXT(MESA_ycbcr_texture , MESA_ycbcr_texture , GLL, GLC, x , x , 2002) diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 0cb002469b..f211797df2 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -4997,6 +4997,11 @@ struct gl_context GLboolean ShareGroupReset; /** + * \name GL_MESA_simulate_graphics_reset + */ + GLenum SimulatedGraphicsResetStatus; + + /** * \name OES_primitive_bounding_box * * Stores the arguments to glPrimitiveBoundingBox diff --git a/src/mesa/main/robustness.c b/src/mesa/main/robustness.c index 47402a2930..f21bee9f04 100644 --- a/src/mesa/main/robustness.c +++ b/src/mesa/main/robustness.c @@ -105,6 +105,15 @@ _mesa_set_context_lost_dispatch(struct gl_context *ctx) _glapi_set_dispatch(ctx->CurrentServerDispatch); } +static GLenum +get_simulated_graphics_reset_status(void) +{ + GET_CURRENT_CONTEXT(ctx); + GLenum status = ctx->SimulatedGraphicsResetStatus; + ctx->SimulatedGraphicsResetStatus = GL_NO_ERROR; + return status; +} + /** * Returns an error code specified by GL_ARB_robustness, or GL_NO_ERROR. * \return current context status @@ -163,3 +172,15 @@ _mesa_GetGraphicsResetStatusARB( void ) return status; } + +/** + * Makes the context behave as if a graphics reset has occurred. + */ +void GLAPIENTRY +_mesa_SimulateGraphicsResetMESA(GLenum status) +{ + GET_CURRENT_CONTEXT(ctx); + ctx->SimulatedGraphicsResetStatus = status; + _mesa_set_context_lost_dispatch(ctx); + SET_GetGraphicsResetStatusARB(ctx->ContextLost, get_simulated_graphics_reset_status); +} diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp index 724c22ee9b..d1c59155cc 100644 --- a/src/mesa/main/tests/dispatch_sanity.cpp +++ b/src/mesa/main/tests/dispatch_sanity.cpp @@ -983,6 +983,9 @@ const struct function common_desktop_functions_possible[] = { { "glVertexAttribL1ui64vARB", 40, -1 }, { "glGetVertexAttribLui64vARB", 40, -1 }, + /* GL_MESA_simulate_graphics_reset */ + { "glSimulateGraphicsResetMESA", 40, -1 }, + { NULL, 0, -1 } }; @@ -2392,6 +2395,9 @@ const struct function gles2_functions_possible[] = { /* GL_KHR_blend_equation_advanced */ { "glBlendBarrierKHR", 20, -1 }, + /* GL_MESA_simulate_graphics_reset */ + { "glSimulateGraphicsResetMESA", 40, -1 }, + { NULL, 0, -1 } }; |