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