The FC suffix does not help. We are testing openglcts from opengl-cts-4.6.0 branch of gitlab.khronos.org:Tracker/vk-gl-cts.git:
d6144a989 Fix attribute mapping in enhanced layouts tests for input arrays MESA_GLES_VERSION_OVERRIDE=3.2 MESA_GLSL_VERSION_OVERRIDE=460 MESA_GL_VERSION_OVERRIDE=4.6FC ./glcts --deqp-runmode=xml-caselist Writing test log into TestResults.qpa dEQP Core git-d6144a989937b2829a9fc9813de994c4f514ebae (0xd6144a98) starting.. target implementation = 'X11 EGL' Writing test cases from 'CTS-Configs' to file 'CTS-Configs-cases.xml'.. Writing test cases from 'dEQP-EGL' to file 'dEQP-EGL-cases.xml'.. Writing test cases from 'KHR-GLES2' to file 'KHR-GLES2-cases.xml'.. Writing test cases from 'dEQP-GLES2' to file 'dEQP-GLES2-cases.xml'.. Writing test cases from 'KHR-GLES3' to file 'KHR-GLES3-cases.xml'.. Writing test cases from 'dEQP-GLES3' to file 'dEQP-GLES3-cases.xml'.. Writing test cases from 'dEQP-GLES31' to file 'dEQP-GLES31-cases.xml'.. Writing test cases from 'KHR-GLES31' to file 'KHR-GLES31-cases.xml'.. Writing test cases from 'KHR-GLESEXT' to file 'KHR-GLESEXT-cases.xml'.. Writing test cases from 'KHR-GLES32' to file 'KHR-GLES32-cases.xml'.. Writing test cases from 'KHR-NoContext' to file 'KHR-NoContext-cases.xml'.. Writing test cases from 'KHR-GL30' to file 'KHR-GL30-cases.xml'.. Writing test cases from 'KHR-GL31' to file 'KHR-GL31-cases.xml'.. FATAL ERROR: Failed to initialize dEQP: Got EGL_BAD_MATCH: eglCreateContext() at egluGLUtil.cpp:198 ERROR: command failed Marek Olšák <mar...@gmail.com> writes: > This should work (I added "FC" at the end): > > MESA_GLSL_VERSION_OVERRIDE=460 MESA_GL_VERSION_OVERRIDE=4.6FC > > Marek > > On Wed, Nov 1, 2017 at 11:16 PM, Mark Janes <mark.a.ja...@intel.com> wrote: >> Mark Janes <mark.a.ja...@intel.com> writes: >> >>> Marek Olšák <mar...@gmail.com> writes: >>> >>>> Hi Mark, >>>> >>>> Can you try the attached patches instead? >>> >>> After talking with Ken and Dylan, I realize that I missed a one-line >>> patch from your thread with my last test (Oct 25 patch to >>> intel_extensions.c). With that patch, there are no regressions in CI. >>> >>> I'm testing the attached patches as well. >> >> With the most recent patches, I'm unable to run the GL CTS 4.6: >> >> MESA_GLSL_VERSION_OVERRIDE=460 MESA_GL_VERSION_OVERRIDE=4.6 ./glcts >> --deqp-runmode=xml-caselist >> Writing test log into TestResults.qpa >> dEQP Core git-d6144a989937b2829a9fc9813de994c4f514ebae (0xd6144a98) >> starting.. >> target implementation = 'X11 EGL' >> Writing test cases from 'CTS-Configs' to file 'CTS-Configs-cases.xml'.. >> Writing test cases from 'dEQP-EGL' to file 'dEQP-EGL-cases.xml'.. >> Writing test cases from 'KHR-GLES2' to file 'KHR-GLES2-cases.xml'.. >> Writing test cases from 'dEQP-GLES2' to file 'dEQP-GLES2-cases.xml'.. >> Writing test cases from 'KHR-GLES3' to file 'KHR-GLES3-cases.xml'.. >> Writing test cases from 'dEQP-GLES3' to file 'dEQP-GLES3-cases.xml'.. >> Writing test cases from 'dEQP-GLES31' to file 'dEQP-GLES31-cases.xml'.. >> Writing test cases from 'KHR-GLES31' to file 'KHR-GLES31-cases.xml'.. >> Writing test cases from 'KHR-GLESEXT' to file 'KHR-GLESEXT-cases.xml'.. >> Writing test cases from 'KHR-GLES32' to file 'KHR-GLES32-cases.xml'.. >> Writing test cases from 'KHR-NoContext' to file >> 'KHR-NoContext-cases.xml'.. >> Writing test cases from 'KHR-GL30' to file 'KHR-GL30-cases.xml'.. >> Writing test cases from 'KHR-GL31' to file 'KHR-GL31-cases.xml'.. >> FATAL ERROR: Failed to initialize dEQP: Got EGL_BAD_MATCH: >> eglCreateContext() at egluGLUtil.cpp:198 >> >> piglit, deqp, and gles-cts encountered no regressions. >> >>>> Thanks, >>>> Marek >>>> >>>> On Wed, Nov 1, 2017 at 9:49 PM, Mark Janes <mark.a.ja...@intel.com> wrote: >>>>> Dylan Baker <dy...@pnwbakers.com> writes: >>>>> >>>>>> I haven't run the CTS tests, but both the deqp and the piglit test pass >>>>>> on my >>>>>> skl with Marek's patches applied. >>>>> >>>>> I must have tested with only the patch 2 applied. Running with all >>>>> three patches in the series, I see no piglit/deqp regressions. >>>>> >>>>> However, GLES CTS fails thousands of ES31-CTS.functional.texture tests, >>>>> eg: >>>>> >>>>> ES31-CTS.functional.texture.format.buffer.rg8i_npot >>>>> glGetIntegerv() failed: glGetError() returned GL_INVALID_ENUM at >>>>> gluContextInfo.cpp:229 >>>>> >>>>> -Mark >>>>> >>>>>> >>>>>> Dylan >>>>>> >>>>>> Quoting Marek Olšák (2017-10-31 18:16:51) >>>>>>> This is how I run piglit on i965: >>>>>>> WAFFLE_GBM_DEVICE=/dev/dri/renderD128 PIGLIT_PLATFORM=gbm >>>>>>> piglit/bin/glinfo|head >>>>>>> GL_RENDERER = Mesa DRI Intel(R) Ivybridge Desktop >>>>>>> >>>>>>> Of course I have Radeon as my main GPU. >>>>>>> >>>>>>> Marek >>>>>>> >>>>>>> On Wed, Nov 1, 2017 at 12:52 AM, Mark Janes <mark.a.ja...@intel.com> >>>>>>> wrote: >>>>>>> > No, please don't. We can't have thousands of failures added to CI. >>>>>>> > >>>>>>> > Dylan, can you double check this for Marek? I'm surprised that it >>>>>>> > doesn't reproduce for him. >>>>>>> > >>>>>>> > -Mark >>>>>>> > >>>>>>> > Marek Olšák <mar...@gmail.com> writes: >>>>>>> > >>>>>>> >> I can't reproduce the issue on my IVB. How about I just push this and >>>>>>> >> you guys fix i965 when you have time? >>>>>>> >> >>>>>>> >> Marek >>>>>>> >> >>>>>>> >> On Thu, Oct 26, 2017 at 5:46 PM, Mark Janes <mark.a.ja...@intel.com> >>>>>>> >> wrote: >>>>>>> >>> That fixed many issues, but: >>>>>>> >>> >>>>>>> >>> On deqp EGL tests, we get: >>>>>>> >>> >>>>>>> >>> dEQP-EGL.functional.create_context_ext.gl_42.rgba8888_no_depth_no_stencil >>>>>>> >>> deqp-egl: main/api_exec.c:135: _mesa_initialize_exec_table: >>>>>>> >>> Assertion `ctx->Version > 0' failed. >>>>>>> >>> >>>>>>> >>> On ES31 CTS tests: >>>>>>> >>> ES31-CTS.functional.texture.texture_buffer.render.as_vertex_array_as_vertex_texture_as_fragment_texture.range_size_513 >>>>>>> >>> glGetIntegerv() failed: glGetError() returned GL_INVALID_ENUM at >>>>>>> >>> gluContextInfo.cpp:229 >>>>>>> >>> >>>>>>> >>> on GL46 CTS (27 failures): >>>>>>> >>> src/mesa/main/teximage.c:595: _mesa_tex_target_is_layered: Assertion >>>>>>> >>> `!"Invalid texture target."' failed. >>>>>>> >>> >>>>>>> >>> Piglit fails 3.5k tests with the same `ctx->Version > 0' assertion >>>>>>> >>> as >>>>>>> >>> deqp-egl. >>>>>>> >>> >>>>>>> >>> -Mark >>>>>>> >>> >>>>>>> >>> Dylan Baker <dy...@pnwbakers.com> writes: >>>>>>> >>> >>>>>>> >>>> I've pushed it to our CI, I'll let you know tomorrow what it looks >>>>>>> >>>> like >>>>>>> >>>> >>>>>>> >>>> Dylan >>>>>>> >>>> >>>>>>> >>>> Quoting Marek Olšák (2017-10-25 19:52:43) >>>>>>> >>>>> Hi Dylan, >>>>>>> >>>>> >>>>>>> >>>>> Can you please add this and re-test? >>>>>>> >>>>> >>>>>>> >>>>> diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c >>>>>>> >>>>> b/src/mesa/drivers/ >>>>>>> >>>>> dri/i965/intel_extensions.c >>>>>>> >>>>> index 21cf632..4d17393 100644 >>>>>>> >>>>> --- a/src/mesa/drivers/dri/i965/intel_extensions.c >>>>>>> >>>>> +++ b/src/mesa/drivers/dri/i965/intel_extensions.c >>>>>>> >>>>> @@ -178,7 +178,7 @@ intelInitExtensions(struct gl_context *ctx) >>>>>>> >>>>> ctx->Extensions.ARB_pipeline_statistics_query = true; >>>>>>> >>>>> ctx->Extensions.ARB_sample_shading = true; >>>>>>> >>>>> ctx->Extensions.ARB_shading_language_420pack = true; >>>>>>> >>>>> - if (ctx->API == API_OPENGL_CORE) { >>>>>>> >>>>> + if (ctx->API != API_OPENGL_COMPAT) { >>>>>>> >>>>> ctx->Extensions.ARB_texture_buffer_object = true; >>>>>>> >>>>> ctx->Extensions.ARB_texture_buffer_object_rgb32 = true; >>>>>>> >>>>> ctx->Extensions.ARB_texture_buffer_range = true; >>>>>>> >>>>> >>>>>>> >>>>> >>>>>>> >>>>> Marek >>>>>>> >>>>> >>>>>>> >>>>> On Wed, Oct 25, 2017 at 11:42 PM, Dylan Baker >>>>>>> >>>>> <dylanx.c.ba...@intel.com> wrote: >>>>>>> >>>>> >>>>>>> >>>>> There are a significant number of i965 regressions from >>>>>>> >>>>> d96c68146a781c79a23f5181d7050174f1070d90, largely related to >>>>>>> >>>>> texturing (I >>>>>>> >>>>> can >>>>>>> >>>>> send you a complete list of regressions if you care, but due >>>>>>> >>>>> to the large >>>>>>> >>>>> number >>>>>>> >>>>> of them I suspect it's something fairly simple). >>>>>>> >>>>> >>>>>>> >>>>> For example: >>>>>>> >>>>> ES31-CTS.functional.texture.format.buffer.r32ui_npot >>>>>>> >>>>> >>>>>>> >>>>> glGetIntegerv() failed: glGetError() returned GL_INVALID_ENUM >>>>>>> >>>>> at >>>>>>> >>>>> gluContextInfo.cpp:229 >>>>>>> >>>>> >>>>>>> >>>>> dEQP-GLES31.functional.state_query.integer.texture_buffer_ >>>>>>> >>>>> binding_getinteger: >>>>>>> >>>>> >>>>>>> >>>>> glGetIntegerv(GL_TEXTURE_BUFFER_BINDING, 0x00007ffee0c43834); >>>>>>> >>>>> // data = { -555819298 } >>>>>>> >>>>> glGetError(); >>>>>>> >>>>> // GL_INVALID_ENUM returned >>>>>>> >>>>> // ERROR: glGetIntegerv: glGetError() returned >>>>>>> >>>>> GL_INVALID_ENUM >>>>>>> >>>>> >>>>>>> >>>>> Dylan >>>>>>> >>>>> >>>>>>> >>>>> Quoting Emil Velikov (2017-10-24 09:30:03) >>>>>>> >>>>> > Hi Marek, >>>>>>> >>>>> > >>>>>>> >>>>> > On 21 October 2017 at 13:54, Marek Olšák <mar...@gmail.com> >>>>>>> >>>>> wrote: >>>>>>> >>>>> > > From: Marek Olšák <marek.ol...@amd.com> >>>>>>> >>>>> > > >>>>>>> >>>>> > > We already have piglit tests testing alpha, luminance, >>>>>>> >>>>> and intensity >>>>>>> >>>>> > > formats. They were skipped by piglit until now. >>>>>>> >>>>> > > >>>>>>> >>>>> > > Additionally, I'm enabling one ARB_texture_buffer_range >>>>>>> >>>>> piglit test to >>>>>>> >>>>> run >>>>>>> >>>>> > > with the compat profile. >>>>>>> >>>>> > >>>>>>> >>>>> > Can you please mention that ARB_texture_buffer_* on i965 is >>>>>>> >>>>> unchanged >>>>>>> >>>>> > - aka still enabled only for core profiles. >>>>>>> >>>>> > Out of curiosity - can you tried the series with anything >>>>>>> >>>>> more than >>>>>>> >>>>> piglit? >>>>>>> >>>>> > >>>>>>> >>>>> > The Intel guys can run the lot through CTS, dEQP... >>>>>>> >>>>> admittedly only on >>>>>>> >>>>> > Intel hardware. >>>>>>> >>>>> > Still it should help catch if a piece is missing somewhere. >>>>>>> >>>>> > >>>>>>> >>>>> > >>>>>>> >>>>> > -Emil >>>>>>> >>>>> > _______________________________________________ >>>>>>> >>>>> > mesa-dev mailing list >>>>>>> >>>>> > mesa-dev@lists.freedesktop.org >>>>>>> >>>>> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >>>>>>> >>>>> >>>>>>> >>>>> >>>> From 1881027bf1840e4c83f31d30175ef2d1d11d2f8f Mon Sep 17 00:00:00 2001 >>>> From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <marek.ol...@amd.com> >>>> Date: Thu, 19 Oct 2017 22:22:15 +0200 >>>> Subject: [PATCH 1/2] mesa: enable ARB_texture_buffer_* extensions in the >>>> Compatibility profile >>>> MIME-Version: 1.0 >>>> Content-Type: text/plain; charset=UTF-8 >>>> Content-Transfer-Encoding: 8bit >>>> >>>> We already have piglit tests testing alpha, luminance, and intensity >>>> formats. They were skipped by piglit until now. >>>> >>>> Additionally, I'm enabling one ARB_texture_buffer_range piglit test to run >>>> with the compat profile. >>>> >>>> i965 behavior is unchanged. >>>> >>>> Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com> >>>> Reviewed-by: Eric Anholt <e...@anholt.net> >>>> --- >>>> src/mapi/glapi/gen/apiexec.py | 12 +++++------- >>>> src/mesa/drivers/dri/i965/intel_extensions.c | 8 +++++--- >>>> src/mesa/main/extensions_table.h | 6 +++--- >>>> src/mesa/main/get.c | 2 -- >>>> src/mesa/main/get_hash_params.py | 20 ++++++++++---------- >>>> src/mesa/main/tests/dispatch_sanity.cpp | 8 ++++---- >>>> src/mesa/main/texparam.c | 4 ++-- >>>> src/mesa/state_tracker/st_context.c | 2 +- >>>> src/mesa/state_tracker/st_extensions.c | 8 +++++++- >>>> src/mesa/state_tracker/st_extensions.h | 3 ++- >>>> src/mesa/state_tracker/st_manager.c | 2 +- >>>> 11 files changed, 40 insertions(+), 35 deletions(-) >>>> >>>> diff --git a/src/mapi/glapi/gen/apiexec.py b/src/mapi/glapi/gen/apiexec.py >>>> index 61eda4b..7da0818 100644 >>>> --- a/src/mapi/glapi/gen/apiexec.py >>>> +++ b/src/mapi/glapi/gen/apiexec.py >>>> @@ -35,7 +35,7 @@ class exec_info(): >>>> Each of the attributes that is not None must have a valid value. The >>>> valid ranges are: >>>> >>>> - compatiblity: [10, 30] >>>> + compatibility: [10, ) >>>> core: [31, ) >>>> es1: [10, 11] >>>> es2: [20, ) >>>> @@ -66,9 +66,8 @@ class exec_info(): >>>> self.es2 = es2 >>>> >>>> functions = { >>>> - # OpenGL 3.1 / GL_ARB_texture_buffer_object. Mesa only exposes this >>>> - # extension with core profile. >>>> - "TexBuffer": exec_info(core=31, es2=31), >>>> + # OpenGL 3.1 / GL_ARB_texture_buffer_object. >>>> + "TexBuffer": exec_info(compatibility=20, core=31, es2=31), >>>> >>>> # OpenGL 3.2 / GL_OES_geometry_shader. >>>> "FramebufferTexture": exec_info(core=32, es2=31), >>>> @@ -144,9 +143,8 @@ functions = { >>>> # GetFloati_v also GL_ARB_shader_atomic_counters >>>> # GetDoublei_v also GL_ARB_shader_atomic_counters >>>> >>>> - # OpenGL 4.3 / GL_ARB_texture_buffer_range. Mesa can expose the >>>> extension >>>> - # with OpenGL 3.1. >>>> - "TexBufferRange": exec_info(core=31, es2=31), >>>> + # OpenGL 4.3 / GL_ARB_texture_buffer_range. >>>> + "TexBufferRange": exec_info(compatibility=20, core=31, es2=31), >>>> >>>> # OpenGL 4.3 / GL_ARB_framebuffer_no_attachments. Mesa can expose the >>>> # extension with OpenGL 3.0. >>>> diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c >>>> b/src/mesa/drivers/dri/i965/intel_extensions.c >>>> index 519d0a5..4d17393 100644 >>>> --- a/src/mesa/drivers/dri/i965/intel_extensions.c >>>> +++ b/src/mesa/drivers/dri/i965/intel_extensions.c >>>> @@ -178,9 +178,11 @@ intelInitExtensions(struct gl_context *ctx) >>>> ctx->Extensions.ARB_pipeline_statistics_query = true; >>>> ctx->Extensions.ARB_sample_shading = true; >>>> ctx->Extensions.ARB_shading_language_420pack = true; >>>> - ctx->Extensions.ARB_texture_buffer_object = true; >>>> - ctx->Extensions.ARB_texture_buffer_object_rgb32 = true; >>>> - ctx->Extensions.ARB_texture_buffer_range = true; >>>> + if (ctx->API != API_OPENGL_COMPAT) { >>>> + ctx->Extensions.ARB_texture_buffer_object = true; >>>> + ctx->Extensions.ARB_texture_buffer_object_rgb32 = true; >>>> + ctx->Extensions.ARB_texture_buffer_range = true; >>>> + } >>>> ctx->Extensions.ARB_texture_cube_map_array = true; >>>> ctx->Extensions.ARB_texture_gather = true; >>>> ctx->Extensions.ARB_texture_multisample = true; >>>> diff --git a/src/mesa/main/extensions_table.h >>>> b/src/mesa/main/extensions_table.h >>>> index 8d8b637..5b66e7d 100644 >>>> --- a/src/mesa/main/extensions_table.h >>>> +++ b/src/mesa/main/extensions_table.h >>>> @@ -133,9 +133,9 @@ EXT(ARB_sync , ARB_sync >>>> EXT(ARB_tessellation_shader , ARB_tessellation_shader >>>> , x , GLC, x , x , 2009) >>>> EXT(ARB_texture_barrier , NV_texture_barrier >>>> , GLL, GLC, x , x , 2014) >>>> EXT(ARB_texture_border_clamp , ARB_texture_border_clamp >>>> , GLL, x , x , x , 2000) >>>> -EXT(ARB_texture_buffer_object , ARB_texture_buffer_object >>>> , x , GLC, x , x , 2008) >>>> -EXT(ARB_texture_buffer_object_rgb32 , >>>> ARB_texture_buffer_object_rgb32 , x , GLC, x , x , 2009) >>>> -EXT(ARB_texture_buffer_range , ARB_texture_buffer_range >>>> , x , GLC, x , x , 2012) >>>> +EXT(ARB_texture_buffer_object , ARB_texture_buffer_object >>>> , GLL, GLC, x , x , 2008) >>>> +EXT(ARB_texture_buffer_object_rgb32 , >>>> ARB_texture_buffer_object_rgb32 , GLL, GLC, x , x , 2009) >>>> +EXT(ARB_texture_buffer_range , ARB_texture_buffer_range >>>> , GLL, GLC, x , x , 2012) >>>> EXT(ARB_texture_compression , dummy_true >>>> , GLL, x , x , x , 2000) >>>> EXT(ARB_texture_compression_bptc , >>>> ARB_texture_compression_bptc , GLL, GLC, x , x , 2010) >>>> EXT(ARB_texture_compression_rgtc , >>>> ARB_texture_compression_rgtc , GLL, GLC, x , x , 2004) >>>> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c >>>> index e68a93b..ea8d932 100644 >>>> --- a/src/mesa/main/get.c >>>> +++ b/src/mesa/main/get.c >>>> @@ -309,8 +309,6 @@ static const int extra_GLSL_130_es3[] = { >>>> }; >>>> >>>> static const int extra_texture_buffer_object[] = { >>>> - EXTRA_API_GL_CORE, >>>> - EXTRA_VERSION_31, >>>> EXT(ARB_texture_buffer_object), >>>> EXTRA_END >>>> }; >>>> diff --git a/src/mesa/main/get_hash_params.py >>>> b/src/mesa/main/get_hash_params.py >>>> index acd5cd1..20ef6e4 100644 >>>> --- a/src/mesa/main/get_hash_params.py >>>> +++ b/src/mesa/main/get_hash_params.py >>>> @@ -442,6 +442,16 @@ descriptor=[ >>>> >>>> # Enums in OpenGL and ES 3.1 >>>> { "apis": ["GL", "GL_CORE", "GLES31"], "params": [ >>>> +# GL_ARB_texture_buffer_object / GL_OES_texture_buffer >>>> + [ "MAX_TEXTURE_BUFFER_SIZE_ARB", >>>> "CONTEXT_INT(Const.MaxTextureBufferSize), extra_texture_buffer_object" ], >>>> + [ "TEXTURE_BINDING_BUFFER_ARB", "LOC_CUSTOM, TYPE_INT, 0, >>>> extra_texture_buffer_object" ], >>>> + [ "TEXTURE_BUFFER_DATA_STORE_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, >>>> TEXTURE_BUFFER_INDEX, extra_texture_buffer_object" ], >>>> + [ "TEXTURE_BUFFER_FORMAT_ARB", "LOC_CUSTOM, TYPE_INT, 0, >>>> extra_texture_buffer_object" ], >>>> + [ "TEXTURE_BUFFER_ARB", "LOC_CUSTOM, TYPE_INT, 0, >>>> extra_texture_buffer_object" ], >>>> + >>>> +# GL_ARB_texture_buffer_range >>>> + [ "TEXTURE_BUFFER_OFFSET_ALIGNMENT", >>>> "CONTEXT_INT(Const.TextureBufferOffsetAlignment), >>>> extra_ARB_texture_buffer_range" ], >>>> + >>>> # GL_ARB_shader_image_load_store / GLES 3.1 >>>> [ "MAX_IMAGE_UNITS", "CONTEXT_INT(Const.MaxImageUnits), >>>> extra_ARB_shader_image_load_store" ], >>>> [ "MAX_VERTEX_IMAGE_UNIFORMS", >>>> "CONTEXT_INT(Const.Program[MESA_SHADER_VERTEX].MaxImageUniforms), >>>> extra_ARB_shader_image_load_store" ], >>>> @@ -602,16 +612,6 @@ descriptor=[ >>>> # GL_ARB_gpu_shader5 / GL_OES_geometry_shader >>>> [ "MAX_GEOMETRY_SHADER_INVOCATIONS", >>>> "CONST(MAX_GEOMETRY_SHADER_INVOCATIONS), >>>> extra_ARB_gpu_shader5_or_oes_geometry_shader" ], >>>> >>>> -# GL_ARB_texture_buffer_object / GL_OES_texture_buffer >>>> - [ "MAX_TEXTURE_BUFFER_SIZE_ARB", >>>> "CONTEXT_INT(Const.MaxTextureBufferSize), extra_texture_buffer_object" ], >>>> - [ "TEXTURE_BINDING_BUFFER_ARB", "LOC_CUSTOM, TYPE_INT, 0, >>>> extra_texture_buffer_object" ], >>>> - [ "TEXTURE_BUFFER_DATA_STORE_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, >>>> TEXTURE_BUFFER_INDEX, extra_texture_buffer_object" ], >>>> - [ "TEXTURE_BUFFER_FORMAT_ARB", "LOC_CUSTOM, TYPE_INT, 0, >>>> extra_texture_buffer_object" ], >>>> - [ "TEXTURE_BUFFER_ARB", "LOC_CUSTOM, TYPE_INT, 0, >>>> extra_texture_buffer_object" ], >>>> - >>>> -# GL_ARB_texture_buffer_range >>>> - [ "TEXTURE_BUFFER_OFFSET_ALIGNMENT", >>>> "CONTEXT_INT(Const.TextureBufferOffsetAlignment), >>>> extra_ARB_texture_buffer_range" ], >>>> - >>>> # GL_OES_primitive_bounding_box >>>> [ "PRIMITIVE_BOUNDING_BOX_ARB", "CONTEXT_FLOAT8(PrimitiveBoundingBox), >>>> extra_OES_primitive_bounding_box" ], >>>> >>>> diff --git a/src/mesa/main/tests/dispatch_sanity.cpp >>>> b/src/mesa/main/tests/dispatch_sanity.cpp >>>> index 8c51180..d7183de 100644 >>>> --- a/src/mesa/main/tests/dispatch_sanity.cpp >>>> +++ b/src/mesa/main/tests/dispatch_sanity.cpp >>>> @@ -504,6 +504,10 @@ const struct function >>>> common_desktop_functions_possible[] = { >>>> { "glDrawArraysInstanced", 31, -1 }, >>>> { "glDrawElementsInstanced", 31, -1 }, >>>> { "glPrimitiveRestartIndex", 31, -1 }, >>>> + { "glTexBuffer", 31, -1 }, >>>> + >>>> + /* GL_ARB_texture_buffer_range */ >>>> + { "glTexBufferRange", 43, -1 }, >>>> >>>> /* GL_ARB_shader_objects */ >>>> { "glDeleteObjectARB", 31, -1 }, >>>> @@ -1501,9 +1505,6 @@ const struct function >>>> gl_compatibility_functions_possible[] = { >>>> }; >>>> >>>> const struct function gl_core_functions_possible[] = { >>>> - /* GL 3.1 */ >>>> - { "glTexBuffer", 31, -1 }, >>>> - >>>> /* GL 3.2 */ >>>> { "glFramebufferTexture", 32, -1 }, >>>> >>>> @@ -1808,7 +1809,6 @@ const struct function gl_core_functions_possible[] = >>>> { >>>> { "glGetProgramResourceLocation", 43, -1 }, >>>> { "glGetProgramResourceLocationIndex", 43, -1 }, >>>> // { "glShaderStorageBlockBinding", 43, -1 }, // XXX: Add to xml >>>> - { "glTexBufferRange", 43, -1 }, >>>> // { "glTextureBufferRangeEXT", 43, -1 }, // XXX: Add to xml >>>> { "glTexStorage2DMultisample", 43, -1 }, >>>> { "glTexStorage3DMultisample", 43, -1 }, >>>> diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c >>>> index 039b933..4a0f61e 100644 >>>> --- a/src/mesa/main/texparam.c >>>> +++ b/src/mesa/main/texparam.c >>>> @@ -1287,8 +1287,8 @@ _mesa_legal_get_tex_level_parameter_target(struct >>>> gl_context *ctx, GLenum target >>>> * From the OpenGL 3.1 spec: >>>> * "target may also be TEXTURE_BUFFER, indicating the texture >>>> buffer." >>>> */ >>>> - return (ctx->API == API_OPENGL_CORE && ctx->Version >= 31) || >>>> - _mesa_has_OES_texture_buffer(ctx); >>>> + return (_mesa_is_desktop_gl(ctx) && ctx->Version >= 31) || >>>> + _mesa_has_OES_texture_buffer(ctx); >>>> case GL_TEXTURE_CUBE_MAP_ARRAY: >>>> return _mesa_has_texture_cube_map_array(ctx); >>>> } >>>> diff --git a/src/mesa/state_tracker/st_context.c >>>> b/src/mesa/state_tracker/st_context.c >>>> index 5d8dd8b..a96e454 100644 >>>> --- a/src/mesa/state_tracker/st_context.c >>>> +++ b/src/mesa/state_tracker/st_context.c >>>> @@ -408,7 +408,7 @@ st_create_context_priv( struct gl_context *ctx, struct >>>> pipe_context *pipe, >>>> /* GL limits and extensions */ >>>> st_init_limits(pipe->screen, &ctx->Const, &ctx->Extensions); >>>> st_init_extensions(pipe->screen, &ctx->Const, >>>> - &ctx->Extensions, &st->options); >>>> + &ctx->Extensions, &st->options, ctx->API); >>>> >>>> if (st_have_perfmon(st)) { >>>> ctx->Extensions.AMD_performance_monitor = GL_TRUE; >>>> diff --git a/src/mesa/state_tracker/st_extensions.c >>>> b/src/mesa/state_tracker/st_extensions.c >>>> index fa2d002..f21885f 100644 >>>> --- a/src/mesa/state_tracker/st_extensions.c >>>> +++ b/src/mesa/state_tracker/st_extensions.c >>>> @@ -578,7 +578,8 @@ get_max_samples_for_formats(struct pipe_screen *screen, >>>> void st_init_extensions(struct pipe_screen *screen, >>>> struct gl_constants *consts, >>>> struct gl_extensions *extensions, >>>> - struct st_config_options *options) >>>> + struct st_config_options *options, >>>> + gl_api api) >>>> { >>>> unsigned i; >>>> GLboolean *extension_table = (GLboolean *) extensions; >>>> @@ -1095,6 +1096,11 @@ void st_init_extensions(struct pipe_screen *screen, >>>> consts->MinMapBufferAlignment = >>>> screen->get_param(screen, PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT); >>>> >>>> + /* The OpenGL Compatibility profile requires arbitrary buffer >>>> swizzling. */ >>>> + if (api == API_OPENGL_COMPAT && >>>> + screen->get_param(screen, PIPE_CAP_BUFFER_SAMPLER_VIEW_RGBA_ONLY)) >>>> + extensions->ARB_texture_buffer_object = GL_FALSE; >>>> + >>>> if (extensions->ARB_texture_buffer_object) { >>>> consts->MaxTextureBufferSize = >>>> _min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE), >>>> diff --git a/src/mesa/state_tracker/st_extensions.h >>>> b/src/mesa/state_tracker/st_extensions.h >>>> index 951185c..7bf1aa8 100644 >>>> --- a/src/mesa/state_tracker/st_extensions.h >>>> +++ b/src/mesa/state_tracker/st_extensions.h >>>> @@ -40,7 +40,8 @@ extern void st_init_limits(struct pipe_screen *screen, >>>> extern void st_init_extensions(struct pipe_screen *screen, >>>> struct gl_constants *consts, >>>> struct gl_extensions *extensions, >>>> - struct st_config_options *options); >>>> + struct st_config_options *options, >>>> + gl_api api); >>>> >>>> >>>> #endif /* ST_EXTENSIONS_H */ >>>> diff --git a/src/mesa/state_tracker/st_manager.c >>>> b/src/mesa/state_tracker/st_manager.c >>>> index eebde62..dab987c 100644 >>>> --- a/src/mesa/state_tracker/st_manager.c >>>> +++ b/src/mesa/state_tracker/st_manager.c >>>> @@ -1168,7 +1168,7 @@ get_version(struct pipe_screen *screen, >>>> _mesa_init_extensions(&extensions); >>>> >>>> st_init_limits(screen, &consts, &extensions); >>>> - st_init_extensions(screen, &consts, &extensions, options); >>>> + st_init_extensions(screen, &consts, &extensions, options, api); >>>> >>>> return _mesa_get_version(&extensions, &consts, api); >>>> } >>>> -- >>>> 2.7.4 >>>> >>>> From bbcc2d52c00744324876f309227c1b8820afef60 Mon Sep 17 00:00:00 2001 >>>> From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <marek.ol...@amd.com> >>>> Date: Fri, 20 Oct 2017 04:08:29 +0200 >>>> Subject: [PATCH 2/2] mesa: final changes to expose OpenGL 3.1 with >>>> ARB_compatibility >>>> MIME-Version: 1.0 >>>> Content-Type: text/plain; charset=UTF-8 >>>> Content-Transfer-Encoding: 8bit >>>> >>>> Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com> >>>> --- >>>> docs/relnotes/17.4.0.html | 1 + >>>> src/mesa/drivers/dri/common/dri_util.c | 7 ------- >>>> src/mesa/main/extensions_table.h | 1 + >>>> src/mesa/main/mtypes.h | 1 + >>>> src/mesa/main/version.c | 13 ++++++++----- >>>> 5 files changed, 11 insertions(+), 12 deletions(-) >>>> >>>> diff --git a/docs/relnotes/17.4.0.html b/docs/relnotes/17.4.0.html >>>> index f81b5bd..a419a74 100644 >>>> --- a/docs/relnotes/17.4.0.html >>>> +++ b/docs/relnotes/17.4.0.html >>>> @@ -45,6 +45,7 @@ Note: some of the new features are only available with >>>> certain drivers. >>>> >>>> <ul> >>>> <li>Disk shader cache support for i965 when MESA_GLSL_CACHE_DISABLE >>>> environment variable is set to "0" or "false"</li> >>>> +<li>OpenGL 3.1 with ARB_compatibility is supported on many gallium >>>> drivers (including radeonsi). >>>> </ul> >>>> >>>> <h2>Bug fixes</h2> >>>> diff --git a/src/mesa/drivers/dri/common/dri_util.c >>>> b/src/mesa/drivers/dri/common/dri_util.c >>>> index 1cff0dd..2af18ce 100644 >>>> --- a/src/mesa/drivers/dri/common/dri_util.c >>>> +++ b/src/mesa/drivers/dri/common/dri_util.c >>>> @@ -362,13 +362,6 @@ driCreateContextAttribs(__DRIscreen *screen, int api, >>>> } >>>> } >>>> >>>> - /* Mesa does not support the GL_ARB_compatibilty extension or the >>>> - * compatibility profile. This means that we treat a >>>> API_OPENGL_COMPAT 3.1 as >>>> - * API_OPENGL_CORE and reject API_OPENGL_COMPAT 3.2+. >>>> - */ >>>> - if (mesa_api == API_OPENGL_COMPAT && major_version == 3 && >>>> minor_version == 1) >>>> - mesa_api = API_OPENGL_CORE; >>>> - >>>> if (mesa_api == API_OPENGL_COMPAT >>>> && ((major_version > 3) >>>> || (major_version == 3 && minor_version >= 2))) { >>>> diff --git a/src/mesa/main/extensions_table.h >>>> b/src/mesa/main/extensions_table.h >>>> index 5b66e7d..2fb668e 100644 >>>> --- a/src/mesa/main/extensions_table.h >>>> +++ b/src/mesa/main/extensions_table.h >>>> @@ -40,6 +40,7 @@ EXT(ARB_clear_buffer_object , dummy_true >>>> EXT(ARB_clear_texture , ARB_clear_texture >>>> , GLL, GLC, x , x , 2013) >>>> EXT(ARB_clip_control , ARB_clip_control >>>> , GLL, GLC, x , x , 2014) >>>> EXT(ARB_color_buffer_float , ARB_color_buffer_float >>>> , GLL, GLC, x , x , 2004) >>>> +EXT(ARB_compatibility , ARB_compatibility >>>> , GLL, x , x , x , 2009) >>>> EXT(ARB_compressed_texture_pixel_storage , dummy_true >>>> , GLL, GLC, x , x , 2011) >>>> EXT(ARB_compute_shader , ARB_compute_shader >>>> , GLL, GLC, x , x , 2012) >>>> EXT(ARB_compute_variable_group_size , >>>> ARB_compute_variable_group_size , GLL, GLC, x , x , 2013) >>>> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h >>>> index 2acf64e..fd5306c 100644 >>>> --- a/src/mesa/main/mtypes.h >>>> +++ b/src/mesa/main/mtypes.h >>>> @@ -4026,6 +4026,7 @@ struct gl_extensions >>>> GLboolean ARB_clear_texture; >>>> GLboolean ARB_clip_control; >>>> GLboolean ARB_color_buffer_float; >>>> + GLboolean ARB_compatibility; >>>> GLboolean ARB_compute_shader; >>>> GLboolean ARB_compute_variable_group_size; >>>> GLboolean ARB_conditional_render_inverted; >>>> diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c >>>> index 90c5c5f..06b8e4d 100644 >>>> --- a/src/mesa/main/version.c >>>> +++ b/src/mesa/main/version.c >>>> @@ -579,11 +579,11 @@ _mesa_get_version(const struct gl_extensions >>>> *extensions, >>>> { >>>> switch (api) { >>>> case API_OPENGL_COMPAT: >>>> - /* Disable GLSL 1.40 and later for legacy contexts. >>>> - * This disallows creation of the GL 3.1 compatibility context. */ >>>> + /* Disable higher GLSL versions for legacy contexts. >>>> + * This disallows creation of higher compatibility contexts. */ >>>> if (!consts->AllowHigherCompatVersion) { >>>> - if (consts->GLSLVersion > 130) { >>>> - consts->GLSLVersion = 130; >>>> + if (consts->GLSLVersion > 140) { >>>> + consts->GLSLVersion = 140; >>>> } >>>> } >>>> /* fall through */ >>>> @@ -611,10 +611,13 @@ _mesa_compute_version(struct gl_context *ctx) >>>> ctx->Version = _mesa_get_version(&ctx->Extensions, &ctx->Const, >>>> ctx->API); >>>> ctx->Extensions.Version = ctx->Version; >>>> >>>> + if (ctx->API == API_OPENGL_COMPAT && ctx->Version >= 31) >>>> + ctx->Extensions.ARB_compatibility = GL_TRUE; >>>> + >>>> /* Make sure that the GLSL version lines up with the GL version. In >>>> some >>>> * cases it can be too high, e.g. if an extension is missing. >>>> */ >>>> - if (ctx->API == API_OPENGL_CORE) { >>>> + if (_mesa_is_desktop_gl(ctx) && ctx->Version >= 31) { >>>> switch (ctx->Version) { >>>> case 31: >>>> ctx->Const.GLSLVersion = 140; >>>> -- >>>> 2.7.4 >>> _______________________________________________ >>> mesa-dev mailing list >>> mesa-dev@lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev