[PATCH weston 1/5] gl-renderer: save OpenGL version in renderer context

Arnaud Vrac rawoul at gmail.com
Mon Dec 4 16:41:14 UTC 2017


On Mon, Dec 4, 2017 at 5:31 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> Hi Arnaud,
>
> On 29 November 2017 at 14:25, Arnaud Vrac <rawoul at gmail.com> wrote:
>> From: Arnaud Vrac <avrac at freebox.fr>
>>
> Here I'd mention why we care about the version. Esp. since the helper
> itself looks quitie strange.

Hi Emil,

Will do.

>
>> Signed-off-by: Arnaud Vrac <rawoul at gmail.com>
>> ---
>>  libweston/gl-renderer.c | 26 ++++++++++++++++++++++++++
>>  1 file changed, 26 insertions(+)
>>
>> diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
>> index 94d81ef4..0a7db13f 100644
>> --- a/libweston/gl-renderer.c
>> +++ b/libweston/gl-renderer.c
>> @@ -199,6 +199,9 @@ struct gl_renderer {
>>
>>         EGLSurface dummy_surface;
>>
>> +       int gl_major;
>> +       int gl_minor;
> Minor seems unused, document/drop/other?

The minor version might be useful if we ever depend on a GLES 3.1
feature. I don't think it hurts to keep it, I'll document the fields.

>> +
>>         struct wl_array vertices;
>>         struct wl_array vtxcnt;
>>
>> @@ -3572,6 +3575,27 @@ fan_debug_repaint_binding(struct weston_keyboard *keyboard,
>>         weston_compositor_damage_all(compositor);
>>  }
>>
>> +static bool
>> +get_gl_version(int *major, int *minor)
>> +{
>> +       const char *version;
>> +
>> +       version = (const char *) glGetString(GL_VERSION);
>> +       if (version) {
>> +               if (sscanf(version, "%d.%d", major, minor) == 2)
>> +                       return true;
>> +
>> +               if (sscanf(version, "OpenGL ES %d.%d", major, minor) == 2)
>> +                       return true;
>> +       }
>> +
>> +       weston_log("failed to get GL version, default to GLES 2.0\n");
>> +       *major = 2;
>> +       *minor = 0;
>> +
>> +       return false;
> Function returns bool, yet nobody checks that. Normally it's
> considered bad idea to write into user provided memory on error.
> I don't think that parsing a desktop GL string or continuing is a good idea.
>
> In either of those cases we're pretty much stuffed, so might as well
> error out ASAP.

I agree, I'll add a check in the caller and move the warning and
fallback to 2.0 there in case of error.

Thanks,
-Arnaud


More information about the wayland-devel mailing list