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. > 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