diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml index f06adc4cfc2..bb12eed7b9b 100644 --- a/src/mapi/glapi/gen/ARB_direct_state_access.xml +++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml @@ -374,7 +374,8 @@ - + @@ -384,7 +385,8 @@ - + @@ -396,7 +398,8 @@ - + @@ -410,7 +413,8 @@ - + @@ -420,7 +424,8 @@ - + @@ -432,7 +437,8 @@ - + @@ -523,7 +529,8 @@ - + @@ -532,7 +539,8 @@ - + diff --git a/src/mapi/glapi/gen/ARB_get_texture_sub_image.xml b/src/mapi/glapi/gen/ARB_get_texture_sub_image.xml index 47e26abb28e..7a8df8bd9c1 100644 --- a/src/mapi/glapi/gen/ARB_get_texture_sub_image.xml +++ b/src/mapi/glapi/gen/ARB_get_texture_sub_image.xml @@ -7,7 +7,8 @@ - + @@ -22,7 +23,8 @@ - + diff --git a/src/mapi/glapi/gen/ARB_robustness.xml b/src/mapi/glapi/gen/ARB_robustness.xml index 1f6ac4696b6..8a33bb8ac4b 100644 --- a/src/mapi/glapi/gen/ARB_robustness.xml +++ b/src/mapi/glapi/gen/ARB_robustness.xml @@ -68,12 +68,14 @@ - + - + @@ -82,7 +84,8 @@ - + @@ -142,7 +145,8 @@ - + diff --git a/src/mapi/glapi/gen/EXT_direct_state_access.xml b/src/mapi/glapi/gen/EXT_direct_state_access.xml index 1a7ba6b2393..7918653d3c3 100644 --- a/src/mapi/glapi/gen/EXT_direct_state_access.xml +++ b/src/mapi/glapi/gen/EXT_direct_state_access.xml @@ -172,7 +172,8 @@ - + @@ -184,7 +185,8 @@ - + @@ -197,7 +199,8 @@ - + @@ -211,7 +214,8 @@ - + @@ -222,7 +226,8 @@ - + @@ -235,7 +240,8 @@ - + @@ -308,7 +314,8 @@ - + @@ -437,7 +444,8 @@ - + @@ -462,7 +470,8 @@ - + @@ -474,7 +483,8 @@ - + @@ -487,7 +497,8 @@ - + @@ -501,7 +512,8 @@ - + @@ -512,7 +524,8 @@ - + @@ -525,7 +538,8 @@ - + @@ -692,7 +706,8 @@ - + @@ -703,7 +718,8 @@ - + @@ -715,7 +731,8 @@ - + @@ -728,7 +745,8 @@ - + @@ -739,7 +757,8 @@ - + @@ -752,7 +771,8 @@ - + @@ -767,14 +787,16 @@ - + - + @@ -785,7 +807,8 @@ - + @@ -797,7 +820,8 @@ - + @@ -810,7 +834,8 @@ - + @@ -821,7 +846,8 @@ - + @@ -834,7 +860,8 @@ - + @@ -849,7 +876,8 @@ - + diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index f97aea70061..a4d4f837add 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -1161,7 +1161,8 @@ - + @@ -2119,7 +2120,8 @@ - + @@ -2167,7 +2169,8 @@ - + @@ -2179,7 +2182,8 @@ - + @@ -2632,21 +2636,24 @@ - + - + - + @@ -2667,7 +2674,8 @@ - + @@ -2678,7 +2686,8 @@ - + @@ -2771,25 +2780,29 @@ - + - + - + - + @@ -2835,7 +2848,8 @@ - + @@ -3331,7 +3345,8 @@ - + @@ -3343,7 +3358,8 @@ - + @@ -4044,7 +4060,8 @@ - + @@ -4058,7 +4075,8 @@ - + @@ -4542,8 +4560,8 @@ - + @@ -4556,8 +4574,8 @@ - + @@ -4569,7 +4587,8 @@ - + @@ -4580,8 +4599,8 @@ - + @@ -4596,8 +4615,8 @@ - + @@ -4610,7 +4629,8 @@ - + @@ -4621,7 +4641,8 @@ - + diff --git a/src/mesa/main/glthread.h b/src/mesa/main/glthread.h index a7893af364e..6388baeaf61 100644 --- a/src/mesa/main/glthread.h +++ b/src/mesa/main/glthread.h @@ -205,6 +205,8 @@ struct glthread_state /** Currently-bound buffer object IDs. */ GLuint CurrentArrayBufferName; GLuint CurrentDrawIndirectBufferName; + GLuint CurrentPixelPackBufferName; + GLuint CurrentPixelUnpackBufferName; /** * The batch index of the last occurence of glLinkProgram or diff --git a/src/mesa/main/glthread_bufferobj.c b/src/mesa/main/glthread_bufferobj.c index a3516cdb152..6413780a8a5 100644 --- a/src/mesa/main/glthread_bufferobj.c +++ b/src/mesa/main/glthread_bufferobj.c @@ -189,6 +189,12 @@ _mesa_glthread_BindBuffer(struct gl_context *ctx, GLenum target, GLuint buffer) case GL_DRAW_INDIRECT_BUFFER: glthread->CurrentDrawIndirectBufferName = buffer; break; + case GL_PIXEL_PACK_BUFFER: + glthread->CurrentPixelPackBufferName = buffer; + break; + case GL_PIXEL_UNPACK_BUFFER: + glthread->CurrentPixelUnpackBufferName = buffer; + break; } } @@ -210,6 +216,10 @@ _mesa_glthread_DeleteBuffers(struct gl_context *ctx, GLsizei n, _mesa_glthread_BindBuffer(ctx, GL_ELEMENT_ARRAY_BUFFER, 0); if (id == glthread->CurrentDrawIndirectBufferName) _mesa_glthread_BindBuffer(ctx, GL_DRAW_INDIRECT_BUFFER, 0); + if (id == glthread->CurrentPixelPackBufferName) + _mesa_glthread_BindBuffer(ctx, GL_PIXEL_PACK_BUFFER, 0); + if (id == glthread->CurrentPixelUnpackBufferName) + _mesa_glthread_BindBuffer(ctx, GL_PIXEL_UNPACK_BUFFER, 0); } } diff --git a/src/mesa/main/glthread_marshal.h b/src/mesa/main/glthread_marshal.h index 5d91095edeb..033056bda39 100644 --- a/src/mesa/main/glthread_marshal.h +++ b/src/mesa/main/glthread_marshal.h @@ -71,6 +71,18 @@ _mesa_glthread_allocate_command(struct gl_context *ctx, return cmd_base; } +static inline bool +_mesa_glthread_has_no_pack_buffer(const struct gl_context *ctx) +{ + return ctx->GLThread.CurrentPixelPackBufferName == 0; +} + +static inline bool +_mesa_glthread_has_no_unpack_buffer(const struct gl_context *ctx) +{ + return ctx->GLThread.CurrentPixelUnpackBufferName == 0; +} + /** * Instead of conditionally handling marshaling immediate index data in draw * calls (deprecated and removed in GL core), we just disable threading.