On Mon, Feb 24, 2014 at 9:43 PM, Roland Scheidegger <srol...@vmware.com> wrote:
> Am 24.02.2014 21:23, schrieb Marek Olšák:
>> Roland,
>>
>> The version CAPs that Emil wants to add have very little to do with
>> which features a driver supports. The versions cannot be derived
>> from other CAPs, instead, it should match what you get after you
>> create an OpenGL context. For example, if your driver can do GL 4.0,
>> the driver cannot report that it can do 4.0. Instead, it should say
>> it can do 3.3, because that's what core Mesa can do. The only purpose
>> of these new version CAPs is to match what core Mesa does without
>> asking core Mesa. It's ugly, but it's the least invasive solution.
>>
>> Of course, it can actually be done cleanly, e.g. making both
>> main/version.c and st_extensions.c independent of gl_context and
>> only using a DRI screen or something like that, but that needs a lot
>> more work.
> Yes, that's what I'm saying. All the cap asking stuff in st_extensions.c
> could be done without a context, as well as what mesa's compute_version
> then does with it.
> And yes you'd still need to clamp it to whatever the state tracker
> actually supports (which is ugly since you can build mesa with non-gl
> state trackers so querying the drivers that way ultimately makes not
> much sense).

I don't think the clamping would be needed. st_extensions.c contains
all that is needed for compute_version and compute_version can return
the supported version based on an "enum gl_api" parameter and that's
it. We could also remove the gl_extensions and gl_constants structures
from gl_context and put them in the DRI screen. Later when the first
context is created, we don't need to determine the version, extensions
and constants again.

Marek
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to