[Piglit] [PATCH 2/4] util, shader_runner: random fixes for compatibility profile
Ilia Mirkin
imirkin at alum.mit.edu
Mon Oct 23 12:49:37 UTC 2017
On Mon, Oct 23, 2017 at 8:35 AM, Marek Olšák <maraeo at gmail.com> wrote:
> On Sat, Oct 21, 2017 at 7:59 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> On Sat, Oct 21, 2017 at 8:55 AM, Marek Olšák <maraeo at gmail.com> wrote:
>>> From: Marek Olšák <marek.olsak at amd.com>
>>>
>>> ---
>>> tests/shaders/shader_runner.c | 2 +-
>>> tests/util/piglit-framework-gl/piglit_wfl_framework.c | 7 ++++++-
>>> 2 files changed, 7 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
>>> index 625521c..31bd315 100644
>>> --- a/tests/shaders/shader_runner.c
>>> +++ b/tests/shaders/shader_runner.c
>>> @@ -2786,21 +2786,21 @@ program_must_be_in_use(void)
>>> } else if (!prog_in_use) {
>>> fprintf(stderr, "Failed to use program: %s\n", prog_err_info);
>>> return PIGLIT_FAIL;
>>> }
>>> return PIGLIT_PASS;
>>> }
>>>
>>> static void
>>> bind_vao_if_supported()
>>> {
>>> - if (vao == 0 && gl_version.num >= 31) {
>>> + if (vao == 0 && piglit_is_core_profile) {
>>> glGenVertexArrays(1, &vao);
>>> glBindVertexArray(vao);
>>> }
>>> }
>>>
>>> static enum piglit_result
>>> draw_arrays_common(int first, size_t count)
>>> {
>>> enum piglit_result result = program_must_be_in_use();
>>> if (first < 0) {
>>> diff --git a/tests/util/piglit-framework-gl/piglit_wfl_framework.c b/tests/util/piglit-framework-gl/piglit_wfl_framework.c
>>> index 5968459..20b9c45 100644
>>> --- a/tests/util/piglit-framework-gl/piglit_wfl_framework.c
>>> +++ b/tests/util/piglit-framework-gl/piglit_wfl_framework.c
>>> @@ -533,21 +533,26 @@ make_context_current(struct piglit_wfl_framework *wfl_fw,
>>> {
>>> bool ok = false;
>>>
>>> #if defined(PIGLIT_USE_OPENGL)
>>>
>>> if (test_config->supports_gl_core_version) {
>>> ok = make_context_current_singlepass(wfl_fw, test_config,
>>> CONTEXT_GL_CORE,
>>> partial_config_attrib_list);
>>> if (ok) {
>>> - piglit_is_core_profile = true;
>>> + /* OpenGL 3.1 is special. It doesn't have
>>> + * a compatibility profile, but it can have
>>> + * ARB_compatibility.
>>> + */
>>> + piglit_is_core_profile =
>>> + !piglit_is_extension_supported("GL_ARB_compatibility");
>>
>> Presumably a test that wants a core context wouldn't be happy with GL
>> 3.1 + GL_ARB_compatibility. IMHO only do the return when
>> piglit_is_core_profile == true.
>
> It's pretty unlikely for a GL core test to be affected by a
> compatibility profile. Compatibility extends Core, not the other way
> around. Additionally, there is no core profile in GL 3.1. If you only
> have GL 3.1, you can't choose the profile (barring the
> forward-compatible flag).
The trivial example is "make sure that compat feature is not available
in core profile".
More information about the Piglit
mailing list