[Mesa-dev] [PATCH shaderdb 2/3] run: fallback to 3.1 core context
Rob Clark
robdclark at gmail.com
Mon Jan 29 20:08:17 UTC 2018
On Mon, Jan 29, 2018 at 2:39 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Mon, Jan 29, 2018 at 2:26 PM, Rob Clark <robdclark at gmail.com> wrote:
>> If we can't create a 3.2 core context, fall back to a 3.1 context.
>> ---
>> run.c | 17 +++++++++++++++--
>> 1 file changed, 15 insertions(+), 2 deletions(-)
>>
>> diff --git a/run.c b/run.c
>> index 79d771e..2056ebd 100644
>> --- a/run.c
>> +++ b/run.c
>> @@ -383,9 +383,22 @@ create_context(EGLDisplay egl_dpy, EGLConfig cfg, enum shader_type type)
>> EGL_NONE
>> };
>> switch (type) {
>> - case TYPE_CORE:
>> + case TYPE_CORE: {
>> eglBindAPI(EGL_OPENGL_API);
>> - return eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT, attribs);
>> + EGLContext core_ctx =
>> + eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT, attribs);
>> +
>> + if (core_ctx == EGL_NO_CONTEXT) {
>> + static const EGLint attribs_31[] = {
>> + EGL_CONTEXT_MAJOR_VERSION_KHR, 3,
>> + EGL_CONTEXT_MINOR_VERSION_KHR, 1,
>> + EGL_NONE
>> + };
>> + core_ctx = eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT, attribs_31);
>
> Should ensure that this context does not expose GL_ARB_compatibility.
> Otherwise it's a compat-type context.
>
Hmm, does that mean there is no way to create a 3.1 core profile if a
driver supports 3.1 compat?
btw, I wonder how much we really care.. afaict all this core/compat
logic in shader-db runner must just be to avoid using a core context
for shaders asking for glsl version <= 130 (presumably in case they
use features removed from core). So I guess it doesn't really matter
if we ended up with a 3.1 compat profile.
(Plus, I wonder what the odds of a driver supporting 3.1 compat but
not 3.2 core??)
BR,
-R
>> + }
>> +
>> + return core_ctx;
>> + }
>> case TYPE_COMPAT:
>> eglBindAPI(EGL_OPENGL_API);
>> return eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT, &attribs[6]);
>> --
>> 2.14.3
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list