platform/upstream/VK-GL-CTS.git
6 years agoAdd some missing GL_TEXTURE_SPARSE state setting
Piers Daniell [Wed, 20 Dec 2017 22:27:34 +0000 (15:27 -0700)]
Add some missing GL_TEXTURE_SPARSE state setting

Some parts of the SparseTextureAllocation test were not setting the
GL_TEXTURE_SPARSE_ARB state on the texture object before
negative-testing sparse texture behavior. This meant that these parts of
the test ran as non-sparse texture. In many cases this issue was masked,
except for the case where the implementation didn't support
GL_ARB_sparse_texture2. In this case it expected a glTexStorage call
with width/height/depth not a multiple of the page size to fail. It
wouldn't fail because the texture was actually non-sparse.

Another problematic part of the test was with the
GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB negative testing.
The test implemented did not fully the test spec or the OpenGL
spec. The correct negative testing of
GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB requires all the
conditions of GL_TEXTURE_SPARSE_ARB set, the correct target
*and* a width/depth that doesn't follow the requirement. The
test tried to test *or* of those conditions and was just wrong.
In addition it tried to use verifyTexStorageInvalidValueErrors()
to verify invalid texture targets, which would never pass.

Affects:
KHR-GL45.sparse_texture_tests.SparseTextureAllocation
KHR-GL46.sparse_texture_tests.SparseTextureAllocation

Components: OpenGL

VK-GL-CTS issue: 917

Change-Id: If25edd0aae382b7305b87ac0a810259e9ee67523

6 years agoFix typo in log message for ClearOpsBufferStorage
Liam Middlebrook [Wed, 17 Jan 2018 06:22:22 +0000 (22:22 -0800)]
Fix typo in log message for ClearOpsBufferStorage

A copy-paste error led for the ClearOpsBufferStorageCase inside of
SparseBufferTests to output that the
    "Unmodified buffer object region has invalid contents"
for cases referring to invalid contents for the modified buffer region.

Components: OpenGL
VK-GL-CTS issue: 956
Change-Id: I562ff6fa984977ee08ca0f2783a046b1bac235bd
Reviewed-By: pdaniell
6 years agoValidate instancing cases properly
Iago Toral Quiroga [Tue, 19 Dec 2017 12:30:14 +0000 (13:30 +0100)]
Validate instancing cases properly

The vertex attrib 64bit limits test case executes
both regular and instanced draw calls and has a
validation function that takes a boolean parameter
that informs it about whether isntancing has been
used so it can verify that all instances executed
properly. However, this function is always called
with false as parameter, indicating no instancing,
even for instanced scenarios, which means that the
validation function is only validating the first
instance even for instanced cases.

Components: OpenGL
VK-GL-CTS issue: 916

Affects:
KHR-GL45.vertex_attrib_64bit.limits_test
KHR-GL46.vertex_attrib_64bit.limits_test

Change-Id: Ibaf2c8fc0b6599a17f7bdbc7c4914b42d38d5e2a

6 years agoUpdate gl.xml revision
Alexander Galazin [Wed, 10 Jan 2018 10:34:00 +0000 (11:34 +0100)]
Update gl.xml revision

Change-Id: I7cb16bd139e801df2d2090ad5dd5d6267a6d19f9
Component: Framework

6 years agoDon't delare arrays as static
Ian Romanick [Fri, 15 Dec 2017 00:18:34 +0000 (16:18 -0800)]
Don't delare arrays as static

m_texture_1D and friends may have different values on each invocation of
gl4cts::GetTextureSubImage::Errors::testTwoDimmensionalTextureErrors()
on a full CTS run.  However, the rules for 'static const' initializers
may prevent the values from being updated after the first run.

I discovered this while trying to track down failures in
KHR-GL46.get_texture_sub_image.errors_test that only started occuring
with the 3rd visual tested in a full CTS run.  Running the test by
itself or testing that visual by itself via glcts would not reproduce
the error.  I added some extra debug logging to the driver, and I found
that testOneDimmensionalTextureErrors() and
testTwoDimmensionalTextureErrors() were using different names for the
GL_TEXTURE_1D texture.  I then discovered that the targets of the
textures used from testTwoDimmensionalTextureErrors() were {
GL_TEXTURE_2D, GL_TEXTURE_RECTANGE, GL_TEXTURE_2D } instead of {
GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D }

See also https://bugs.freedesktop.org/show_bug.cgi?id=104154

Components: OpenGL

VK-GL-CTS issue: 912

Affects:
KHR-GL46.get_texture_sub_image.errors_test

Change-Id: I3ce061d9de75df46ff69a7eea4b88f6d17164f30

6 years agoFix (likely) typo in glGetTextureSubImage height calculation
Ian Romanick [Thu, 14 Dec 2017 23:56:59 +0000 (15:56 -0800)]
Fix (likely) typo in glGetTextureSubImage height calculation

The old code used "test_textures[i].id == GL_TEXTURE_1D", but
test_texturess::id contains the texture ID, not the texture target.  As
a result, the GL_TEXTURE_1D test always got the error that it expected,
but it got it for the wrong reason.

Components: OpenGL

VK-GL-CTS issue: 912

Affects:
KHR-GL46.get_texture_sub_image.errors_test

Change-Id: I4d3de1ccbd3b0cc554af23ceae16d590c82e81d4

6 years agogl_spirv: fix layout for uniform blocks on state queries test
Alejandro Piñeiro [Fri, 15 Dec 2017 13:37:36 +0000 (14:37 +0100)]
gl_spirv: fix layout for uniform blocks on state queries test

The shader for spirv_modules_state_queries_test was using location for
a uniform block. Although glslang is not raising an error, that is
wrong (See section 4.4.5 of the 4.50 GLSL spec).

Additionally, we should provide a way to identify the uniform block
without using a name, so we should specify the binding (see Issue 21
at ARB_gl_spirv spec).

Modules: OpenGL

VK-GL-CTS issue: 913

Affects:
KHR-GL45.gl_spirv.spirv_modules_state_queries_test
KHR-GL46.gl_spirv.spirv_modules_state_queries_test

Change-Id: I95cb03506bccf76b4188e879960813a060c662aa

6 years agoRemove GL_RGB9_E5 from SparseTexture2Allocation
James Helferty [Fri, 8 Dec 2017 21:44:32 +0000 (16:44 -0500)]
Remove GL_RGB9_E5 from SparseTexture2Allocation

SparseTexture2Allocation tests multisample textures; since GL_RGB9_E5
is not required to be supported as a multisample texture format, it
shouldn't be included in this test.

Components: OpenGL
VK-GL-CTS issue: 892

Affects:
KHR-GL4x.sparse_texture2_tests.SparseTexture2Allocation

Change-Id: I58fa72c26d8cc0c2060b8176aeec4f7d3e43787f

6 years agoUpdate gl_spirv tests fallback binaries
Alejandro Piñeiro [Wed, 13 Dec 2017 11:43:12 +0000 (12:43 +0100)]
Update gl_spirv tests fallback binaries

ARB_gl_spirv tests include off-line fallback binaries in the case of
glslang/spirv-tools not being available. During the review process of
those tests, it was agreed to remove the noise function test, but the
binaries were not updated.

Modules: OpenGL

VK-GL-CTS issue: 897

Affects:
KHR-GL45.gl_spirv.spirv_glsl_to_spirv_builtin_functions_test
KHR-GL45.gl_spirv.spirv_glsl_to_spirv_builtin_functions_test

Change-Id: I8be837a286a3c013568101d5aa1ae3d6fd4eca8f

6 years agoAvoid redundant shader creation for clamp tests
James Helferty [Wed, 6 Dec 2017 20:07:29 +0000 (15:07 -0500)]
Avoid redundant shader creation for clamp tests

Avoid redundant work involving creation of shaders. By rearranging the
order in which we iterate loops, we can avoid a signficant amount of
shader string manipulation and redundant shader creation. (This should
reduce the run time for this test without impacting coverage.)

Component: OpenGL
VK-GL-CTS issue: 889

Affects:
KHR-GL4x.sparse_texture_clamp_tests.SparseTextureClampLookupResidency
KHR-GL4x.sparse_texture_clamp_tests.SparseTextureClampLookupColor

Change-Id: If0cb11827c45da6b13d81115d4a8a9143d31e8c6

6 years agoFix expectation for state queries SPIR-V test
Alejandro Piñeiro [Fri, 8 Dec 2017 07:47:03 +0000 (08:47 +0100)]
Fix expectation for state queries SPIR-V test

The test removes the names for several variables of the shader, and
then it expect a length of 1 for all of them when doing a state
query. But on the case of TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH it
should return a 0.

From spec:
   "If pname is TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, the length of
   the longest output variable name specified to be used for transform
   feedback, including a null terminator, is returned. If no outputs
   are used for transform feedback, zero is returned. If no name
   reflection information is available, one is returned."

In this shader, transform feedback is not activated, so instead of
applying the last sentence, it should apply the sentence "If no
outputs are used for transform feedback, zero is returned".

Modules: OpenGL

VK-GL-CTS issue: 886

Affects:
KHR-GL45.gl_spirv.spirv_modules_state_queries_test
KHR-GL46.gl_spirv.spirv_modules_state_queries_test

Change-Id: I02ad02ee252e6703411ced4f14a7d753b3ef3eda

6 years agoUpdate KC CTS reference
Alexander Galazin [Fri, 8 Dec 2017 10:54:49 +0000 (11:54 +0100)]
Update KC CTS reference

Component: OpenGL

Change-Id: I112d7af5b25398407444f31ca6b37cae836ec820

6 years agoUse less nesting in many arrays of arrays tests.
Kenneth Graunke [Thu, 30 Nov 2017 08:13:35 +0000 (00:13 -0800)]
Use less nesting in many arrays of arrays tests.

Testing 8 levels of array-of-array nesting is very thorough, but a bit
overkill.  It creates a huge amount of register pressure which tends to
slow down compilers, causing the test to take an unreasonable amount of
time to run.  This patch reduces it to 4 levels in many subtests, which
should still be a reasonable amount of testing while running in much
less time.

This cuts the runtime of KHR-GL46.arrays_of_arrays_gl.* by 33 minutes
(43 -> 10) on my laptop's discrete GPU.  With the Intel Mesa driver,
it cuts it by 17 minutes (23 -> 6).

Some tests still exercise 8 levels of nesting, so there's still some
coverage of that scenario.

Components: OpenGL
VK-GL-CTS issue: 878

Affects:
- KHR-GL4*.arrays_of_arrays_gl.InteractionFunctionCalls1
- KHR-GL4*.arrays_of_arrays_gl.InteractionFunctionCalls2
- KHR-GL4*.arrays_of_arrays_gl.InteractionArgumentAliasing1
- KHR-GL4*.arrays_of_arrays_gl.InteractionArgumentAliasing2
- KHR-GL4*.arrays_of_arrays_gl.InteractionArgumentAliasing3
- KHR-GL4*.arrays_of_arrays_gl.InteractionArgumentAliasing4
- KHR-GL4*.arrays_of_arrays_gl.InteractionArgumentAliasing5
- KHR-GL4*.arrays_of_arrays_gl.InteractionArgumentAliasing6
- KHR-GL4*.arrays_of_arrays_gl.SubroutineFunctionCalls1
- KHR-GL4*.arrays_of_arrays_gl.SubroutineFunctionCalls2
- KHR-GL4*.arrays_of_arrays_gl.SubroutineArgumentAliasing1
- KHR-GL4*.arrays_of_arrays_gl.SubroutineArgumentAliasing2
- KHR-GL4*.arrays_of_arrays_gl.SubroutineArgumentAliasing3
- KHR-GL4*.arrays_of_arrays_gl.SubroutineArgumentAliasing4
- KHR-GLES31.core.arrays_of_arrays.InteractionFunctionCalls1
- KHR-GLES31.core.arrays_of_arrays.InteractionFunctionCalls2
- KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing1
- KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing2
- KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing3
- KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing4
- KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing5
- KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing6

Change-Id: Ia26ac5fb94799a2f80c9e2e9553c066d9c13c59b

6 years agoFix OpenGL function prototype calling conventions
Piers Daniell [Fri, 1 Dec 2017 21:17:54 +0000 (14:17 -0700)]
Fix OpenGL function prototype calling conventions

OpenGL doesn't use the default function calling convention
on all platforms, which is why gl.h defines the macros
GL_APICALL and GL_APIENTRY for applications to use when
defining their own OpenGL function prototypes. Not using
these may cause a crash if an OpenGL function is called
with the wrong calling convention.

Affects:
KHR-GL46.transform_feedback.*

Components: OpenGL

VK-GL-CTS issue: 882

Change-Id: I8766262b32a04b8eff8e110e1f116c2f915274e9

6 years agoUpdate KC CTS reference
Alexander Galazin [Fri, 1 Dec 2017 14:02:32 +0000 (15:02 +0100)]
Update KC CTS reference

Component: OpenGL

Change-Id: I5cfa8633cdc7af147351951e7c1cd89908ea3f45

6 years agoAdd OpenGL 4.6 configuration
Piers Daniell [Mon, 27 Nov 2017 19:26:19 +0000 (12:26 -0700)]
Add OpenGL 4.6 configuration

The CTS-Configs.gl46 entry was missing from the configs.qpa
file and results in validation failure.

Affects:

cts-runner --type=gl46

Components: OpenGL

VK-GL-CTS issue: 866

Change-Id: I16745a7ce36040f8ef60cfbb1e4ffac250b289ee

6 years agoFix maximum location for varying location limit test
Iago Toral Quiroga [Thu, 23 Nov 2017 08:30:35 +0000 (09:30 +0100)]
Fix maximum location for varying location limit test

The varying location limit tests for enhanced layouts produces
shader code where it attempts to use a location that is 1 slot
beyond the limit available for each shader stage and expects
linker errors as a result.

However, the functions it uses to compute the maximum location
slot available in a shader stage also consider the stage it will
be linked to to cap that limit (which is required to produce valid
shader code in other tests that also use these functions).

This affects scenarios where, for example, one stage allows up to
32 output locations but the stage it is linked to only accepts
up to 16 inputs. In such scenario, these functions will return
a limit of 16 for the stage that can output 32 so the shader code
produced can link.

However, the varying location limit test intends to produce an
invalid location by adding 1 to the maximum location slot for that
stage (so it wants to produce 32 + 1 = 33 in the case above), so
in this particular case we want the connecting stage to be
ignored.

Add a boolean flag to these functions so we can select between both
behaviors when computing the maximum location for a given stage
and make the varying location limit test force the behavior where
the maximum location in the connecting shader stages is ignored.

Components: OpenGL
VK-GL-CTS issue: 863

Affects:
KHR-GL45.enhanced_layouts.varying_location_limit
KHR-GL46.enhanced_layouts.varying_location_limit
KHR-GL45.enhanced_layouts.varying_locations
KHR-GL46.enhanced_layouts.varying_locations
KHR-GL45.enhanced_layouts.varying_array_locations
KHR-GL46.enhanced_layouts.varying_array_locations
KHR-GL45.enhanced_layouts.varying_components
KHR-GL46.enhanced_layouts.varying_components
KHR-GL45.enhanced_layouts.varying_array_components
KHR-GL46.enhanced_layouts.varying_array_components

Change-Id: If766582bf494942abdad3e1dde5e1ed8149f4333

6 years agogl3cTransformFeedbackTests: use delete[] to match new[]
Nicolai Hähnle [Mon, 20 Nov 2017 16:45:49 +0000 (17:45 +0100)]
gl3cTransformFeedbackTests: use delete[] to match new[]

C++ requires that memory allocated by new[] is freed using delete[]
instead of just plain delete. This does not really have an effect in
practice, but it does fix an error reported by Address Sanitizer:

=================================================================
==12338==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x6020000634b0
    #0 0x7f21af5b3580 in operator delete(void*) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc8580)
    #1 0x55d795f901ae in gl3cts::TransformFeedback::APIErrors::testExtension1() /home/nha/amd/tests/cts/external/openglcts/modules/gl/gl3cTransformFeedbackTests.cpp:837
    #2 0x55d795f9d71f in gl3cts::TransformFeedback::APIErrors::iterate() /home/nha/amd/tests/cts/external/openglcts/modules/gl/gl3cTransformFeedbackTests.cpp:251
    #3 0x55d795f64736 in gl3cts::TestCaseWrapper::iterate(tcu::TestCase*) /home/nha/amd/tests/cts/external/openglcts/modules/gl/gl3cTestPackages.cpp:100
    #4 0x55d797d10682 in tcu::TestSessionExecutor::iterateTestCase(tcu::TestCase*) /home/nha/amd/tests/cts/framework/common/tcuTestSessionExecutor.cpp:272
    #5 0x55d797d10798 in tcu::TestSessionExecutor::iterate() /home/nha/amd/tests/cts/framework/common/tcuTestSessionExecutor.cpp:135
    #6 0x55d797cf0748 in tcu::App::iterate() /home/nha/amd/tests/cts/framework/common/tcuApp.cpp:173
    #7 0x55d795f15967 in main /home/nha/amd/tests/cts/framework/platform/tcuMain.cpp:55
    #8 0x7f21adceb3f0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x203f0)
    #9 0x55d795f5e449 in _start (/mnt/9a5f7d49-0504-436d-83ae-10198f821499/nha/amd/tests/cts/build/external/openglcts/modules/glcts+0xa55449)

0x6020000634b0 is located 0 bytes inside of 3-byte region [0x6020000634b0,0x6020000634b3)
allocated by thread T0 here:
    #0 0x7f21af5b30a0 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc80a0)
    #1 0x55d795f900da in gl3cts::TransformFeedback::APIErrors::testExtension1() /home/nha/amd/tests/cts/external/openglcts/modules/gl/gl3cTransformFeedbackTests.cpp:826

Component: OpenGL
VK-GL-CTS issue: 858
Affects:
KHR-GL45.transform_feedback.api_errors_test

Change-Id: Ie0872535d224c27cc6864fb71aaf7eb219661a02

6 years agoFix expectation for multisample SPIR-V test
Iago Toral Quiroga [Wed, 15 Nov 2017 07:44:22 +0000 (08:44 +0100)]
Fix expectation for multisample SPIR-V test

The last subtest of the builtin variable decorations
SPIR-V test renders to a 2-sample multisample FBO by
clearing to black and then using a fragment shader
that uses gl_SampleMask to select only one of the 2
samples. The selected sample always outputs 100% green.

Because the sample locations can be different acrosss
implementations, we can't tell what the resolved green
component will be, only that it cannot be 0x00 (since
one green sample is selected) and it cannot
be 0xFF (since sample coverage is only 50%).

Modules: OpenGL

VK-GL-CTS issue: 850

Affects:
KHR-GL45.gl_spirv.spirv_validation_builtin_variable_decorations_test
KHR-GL46.gl_spirv.spirv_validation_builtin_variable_decorations_test

Change-Id: I7f225199954c9193ff0b5e962d4de0ca905a5a76

6 years agoRemove luminance and 3D depth requirement from ARB_texture_filter_minmax
Scott D Phillips [Tue, 14 Nov 2017 22:06:50 +0000 (14:06 -0800)]
Remove luminance and 3D depth requirement from ARB_texture_filter_minmax

Support not required by the extension.

Component: OpenGL

VK-GL-CTS issue: 849

Affects:
* KHR-GL45.texture_filter_minmax_tests.*

Change-Id: I53ede0343aa15e7528e12bf387f337f70ac155dd

6 years agoAdd interaction with NVX_cross_process_interop
Daniel Koch [Wed, 15 Nov 2017 15:20:54 +0000 (10:20 -0500)]
Add interaction with NVX_cross_process_interop

Update registry references to include
GL_NV_gpu_multicast and GL_NVX_cross_process_interop

VK-GL-CTS issue: 851
Component: OpenGL

Affects:
KHR-GL45.direct_state_access.buffers_errors
KHR-GL46.direct_state_access.buffers_errors

Change-Id: I42cdb7ad37f9c2ed60547aa817d263cd777f0f6f

6 years agoFix strict aliasing violations in gl3cCommonBugsTests
Neil Roberts [Wed, 15 Nov 2017 21:45:39 +0000 (22:45 +0100)]
Fix strict aliasing violations in gl3cCommonBugsTests

In two places in PerVertexValidationTest::getTestIterationProperties
it first stores a value in a pointer to an enum and then later tries
to update the enum via a reference casted to an int reference. I
believe this violates the strict aliasing rules and so is undefined
behaviour. At least with gcc and -O2 the compiler seems to take
advantage of this and effectively ignores the initial assignment of
SHADER_STAGE_VERTEX for the PERVERTEX_DECLARATION_MISMATCH_TC_TE_VS
iteration. The result is that used_shader_stages gets or’d with an
unitialised value. This was causing a valgrind error and depending on
what the original value happened to be it can make the test
erroneously fail.

Modules: OpenGL

VK-GL-CTS issue: 853

Affects:
KHR-GL*.CommonBugs.CommonBug_PerVertexValidation

Change-Id: I1094de5c2114c035e339cdb524808f45cbe55782

6 years agoDocumentation updates for OpenGL 4.6
Daniel Koch [Fri, 10 Nov 2017 19:42:51 +0000 (14:42 -0500)]
Documentation updates for OpenGL 4.6

Change-Id: I2d0a29ee9de24ae5aa616e0a5450c923ba3ba26d
Component: OpenGL
Affects: None

6 years agoRemove mod from GL mustpass
Alexander Galazin [Fri, 10 Nov 2017 15:13:33 +0000 (16:13 +0100)]
Remove mod from GL mustpass

Components: OpenGL

VK-GL-CTS public issue: 51

Affects:
KHR-GL*.gpu_shader_fp64.builtin.mod_*

Change-Id: Idac62351b9ca926cdcb411990c33e7332e8a9db7

6 years agoUpdate KC CTS reference
Alexander Galazin [Fri, 10 Nov 2017 12:11:07 +0000 (13:11 +0100)]
Update KC CTS reference

Components: OpenGL

Change-Id: I241503a713fc4a15cdcf359c40e2b119b5b5fd4f

6 years agoUse proper name for array-of-array varyings.
Juan A. Suarez Romero [Mon, 30 Oct 2017 12:50:23 +0000 (12:50 +0000)]
Use proper name for array-of-array varyings.

varying_structure_location tests have the piece of shader code:

```
struct Data {
    dvec2 single;
    dvec2 array[1];
};

layout (location = 0) flat in Data tes_gs_output[][1];
```

When test tries to verify "single" variable, it tries to access through
"tes_gs_output[0].single", which is not correct. Rather it must use
"tes_gs_output[0][0].single"

Affects:
* KHR-GL46.enhanced_layouts.varying_structure_locations

Components: OpenGL

VK-GL-CTS issue: 796

Change-Id: Ib1c2ac6877f46f0be8530156a184b8fa41349c40

6 years agoGL_ARB_compute_shader required for OpenGL < 4.3
Juan A. Suarez Romero [Mon, 6 Nov 2017 18:50:28 +0000 (19:50 +0100)]
GL_ARB_compute_shader required for OpenGL < 4.3

GL_ARB_compute_shader is part of OpenGL 4.3 and above.

For older versions, it is required to enable it explicitly.

Fixes:
KHR-GL31.CommonBugs.CommonBug_ParenthesisInLayoutQualifierIntegerValue
KHR-GL32.CommonBugs.CommonBug_ParenthesisInLayoutQualifierIntegerValue
KHR-GL33.CommonBugs.CommonBug_ParenthesisInLayoutQualifierIntegerValue
KHR-GL40.CommonBugs.CommonBug_ParenthesisInLayoutQualifierIntegerValue
KHR-GL41.CommonBugs.CommonBug_ParenthesisInLayoutQualifierIntegerValue
KHR-GL42.CommonBugs.CommonBug_ParenthesisInLayoutQualifierIntegerValue

Components: OpenGL

VK-GL-CTS issue: 818

Change-Id: I8e7ab78e29861547f0379feebce0375e1dabf47c

6 years agoLoad functions from ARB_uniform_buffer_object
Juan A. Suarez Romero [Tue, 7 Nov 2017 12:24:25 +0000 (12:24 +0000)]
Load functions from ARB_uniform_buffer_object

While this extension is part of OpenGL 3.1 and above, it is not part of
OpenGL 3.0.

As we need to run the tests for OpenGL 3.0 too, and we need to use some
functions exposed by this extension, let's load them from the extension
itself, instead of relying in the core functions.

Affects:
* KHR-GL30.transform_feedback.draw_xfb_instanced_test
* KHR-GL30.transform_feedback.draw_xfb_stream_instanced_test

Components: OpenGL

VK-GL-CTS issue: 819

Change-Id: I2cd1652b4c2d3b55e009c44b85b451d207387b96

6 years agoRelax XFB begin check to match recent spec edit
James Helferty [Thu, 19 Oct 2017 18:24:35 +0000 (14:24 -0400)]
Relax XFB begin check to match recent spec edit

Update tests to reflect a recent change to the GL 4.6 specification.
Previously, if a shader layout qualifier specified that xfb_stride was
non-zero for a given xfb_buffer, then a buffer object was required to
be bound at that transform feedback buffer binding point. After the
spec change, it is now legal to not have a buffer bound, provided no
outputs are associated with the buffer.

Components: OpenGL

VK-GL-CTS issue: 785

Affects:
* KHR-GL44/45/46.enhanced_layouts.xfb_stride_of_empty_list
* KHR-GL44/45/46.enhanced_layouts.xfb_stride_of_empty_list_and_api

Change-Id: I38622bad1af3bc8a2a4c683eadc184e6231f7c85

6 years agoAdd CTS_ARB_gl_spirv test implementation
Adam Czupryna [Fri, 7 Jul 2017 09:42:37 +0000 (11:42 +0200)]
Add CTS_ARB_gl_spirv test implementation

Add CTS_ARB_gl_spirv test implementation that contains:
SpirvModulesPositiveTest,
SpirvModulesShaderBinaryMultipleShaderObjectsTest,
SpirvModulesStateQueriesTest,
SpirvModulesErrorVerificationTest,
SpirvGlslToSpirVEnableTest,
SpirvGlslToSpirVBuiltInFunctionsTest,
SpirvGlslToSpirVSpecializationConstantsTest,
SpirvValidationBuiltInVariableDecorationsTest

Affects:

KHR-GL45.gl_spirv.*

Components: Framework, OpenGL

VK-GL-CTS issue: 554

Change-Id: I0d54c70df619dbbd80b28350d2ac5e31aca08927
(cherry picked from commit a24448cdd72ffdbd8f7f571886625b8a53100979)

6 years agoFix attribute mapping in enhanced layouts tests for input arrays
Iago Toral Quiroga [Mon, 2 Oct 2017 11:10:20 +0000 (13:10 +0200)]
Fix attribute mapping in enhanced layouts tests for input arrays

Some tests in KHR-GL45.enhanced_layouts.varying_* (specifically
KHR-GL45.enhanced_layouts.varying_array_{locations,components})
use input arrays on the vertex shader, however, the code
that uploads vertex data for these (and other test cases) doesn't
account for arrays at all.

Also, the tests in this category that call
TextureTestBase::prepareAttributes to do the VAO setup seem to
provide inconsistent values for variable.m_descriptor.m_offset,
which also leads to incorrect vertex attribute mappings.
Specifically, in the 'component' variants of these tests
(such as varying_array_components), two different input variables
have m_offset = 0, which has the consequence that we end up
computing a vertex buffer with a size that's only big enough to
fit one of the inputs and we overwrite the data for the first
input with the data for the second input when we setup the VAO,
however, the 'location' variants (such as varying_array_locations),
see different offsets for different input variables, which leads to
a different VAO setup.

Components: OpenGL
VK-GL-CTS issue: 739

Affects:
KHR-GL45.enhanced_layouts.varying_*
KHR-GL46.enhanced_layouts.varying_*

Change-Id: Icec238a970e2cd67d6109a25fba980f756abb71b

6 years agoSeveral fixes for texture_size_promotion
Juan A. Suarez Romero [Wed, 18 Oct 2017 09:37:27 +0000 (09:37 +0000)]
Several fixes for texture_size_promotion

Specifically, this changeset fixes:

- Check for unsupported framebuffer configurations
- Setup data for depth/stencil textures
- Explicitly set minification/magnification filters
- Deal with the corner cases in precision when using fixed-point
textures.

Affects:

KHR-GL45.texture_size_promotion.functional
KHR-GL46.texture_size_promotion.functional

Components: OpenGL

VK-GL-CTS issue: 783

Change-Id: I3f191084b2a604f1a743759905d641d2b13db2ad

6 years agoRespect GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
Iago Toral Quiroga [Tue, 17 Oct 2017 07:58:57 +0000 (09:58 +0200)]
Respect GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS

KHR-GL45.enhanced_layouts.xfb_override_qualifiers_with_api
generates shaders that capture XFB for varyings of all types.
For the cases of dmat4x3, dmat3x4 and dmat4, this requires
over 64 transform feedback components in total, which is larger
than the minimum value that implementations are required to
support for GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
which the OpenGL 4.6 spec sets in 64. For implementations that
support this minimum, the generated shaders are invalid and
expected to fail to link.

Check the required component size of the XFB for the generated
shaders and skip them if they exceed the implementation limit.
At worse, for implementations that only support the minimum
number of transform feedback components required by the spec
it would only skip the 3 largest types (out of 34 being tested).

Components: OpenGL
VK-GL-CTS issue: 776

Affects:
KHR-GL45.enhanced_layouts.xfb_override_qualifiers_with_api

Change-Id: I51c9da494f96a0746f74116f817d99afd070a9ee

6 years agoComponent aliasing on vertex inputs is allowed
Iago Toral Quiroga [Wed, 18 Oct 2017 10:08:54 +0000 (12:08 +0200)]
Component aliasing on vertex inputs is allowed

From the OpenGL 4.6 spec, section 11.1 Vertex shaders,
page 384:

"It is possible for an application to bind more than one
 attribute name to the same location. This is referred
 to as aliasing. This will only work if only one of the
 aliased attributes is active in the executable program,
 or if no path through the shader consumes more than one
 attribute of a set of attributes aliased to the same
 location. A link error can occur if the linker determines
 that every path through the shader consumes multiple
 aliased attributes, but implementations are not required
 to generate an error in this case."

The varying_location_aliasing_with_mixed_types enhanced
layouts test generates negative tests to check that
component aliasing produces linker errors for all shader
stages, including vertex shaders when the aliasing occurs
on the vertex inputs. By the citation above, the spec
doesn't mandate implementations to produce an error in
this case, so these particular tests are invalid.

This change removes the test cases that expect an error
to be generated for shaders with component aliasing on
vertex shader inputs.

Components: OpenGL
VK-GL-CTS issue: 781

Affects:
KHR-GL45.enhanced_layouts.varying_location_aliasing_with_mixed_types
KHR-GL46.enhanced_layouts.varying_location_aliasing_with_mixed_types

Change-Id: Ie1cafc92c4b7023c3d911ec5fe883dad297029d5

6 years agoOnline compression for ETC2 compressed formats is not required
Eleni Maria Stea [Tue, 13 Jun 2017 07:08:08 +0000 (09:08 +0200)]
Online compression for ETC2 compressed formats is not required

The DSA compressed texture tests currently require online compression for
ETC2 formats but drivers are not required to support this. Since the purpose
of the test is not to test the compression, when a compression format is not
supported we use already compressed data.

Components: OpenGL
VK-GL-CTS issue: 497

Affects:
KHR-GL45.direct_state_access.textures_compressed_subimage

Change-Id: Icff52745e9cf7a2acb39aea71d31f4ff827ea01c

6 years agoDelete incorrect invalid map transform feedback subtest.
Kenneth Graunke [Thu, 12 Oct 2017 04:39:05 +0000 (21:39 -0700)]
Delete incorrect invalid map transform feedback subtest.

The citation given in this test comes from the OpenGL man pages, which
are not authoritative.  The ES 3.2 and GL 4.x specifications say:

   "Effects of Mapping Buffers on Other GL Commands

    Any GL command which attempts to read from, write to, or change the
    state of a buffer object may generate an INVALID_OPERATION error if
    all or part of the buffer object is mapped. However, only commands
    which explicitly describe this error are required to do so. If an
    error is not generated, using such commands to perform invalid
    reads, writes, or state changes will have undefined results and may
    result in GL interruption or termination."

Importantly, it says "_may_ generate an INVALID_OPERATION error".  Some
drivers choose not to implement this to avoid the CPU overhead required
to enforce this optional restriction.

Affects:
- KHR-*.transform_feedback.api_errors_test

VK-GL-CTS issue: 765

Change-Id: I34ca78926fe0f311db096de98b71e0981ee91d53
Components: OpenGL

6 years agoSkip non accelerated pixel format
Jeannot Breton [Fri, 6 Oct 2017 13:56:17 +0000 (08:56 -0500)]
Skip non accelerated pixel format

They were previously skipped in older CTS version,
but when we reorganized the code to merge all CTS together the
related code got remove

We also fix the way we detect hardware acceleration

Affects:

pixel formats selected by cts-runner on Windows

Components: OpenGL

VK-GL-CTS issue: 692

Change-Id: I9968d85b555fe41aea8e64b885f182407e1ce95e

6 years agoMake 420pack 'binding' layout qualifier tests check MAX_*_IMAGE_UNIFORMS
Kenneth Graunke [Mon, 25 Sep 2017 04:18:11 +0000 (21:18 -0700)]
Make 420pack 'binding' layout qualifier tests check MAX_*_IMAGE_UNIFORMS

Image uniform support is not mandatory for the VS/TCS/TES/GS stages,
so GL_MAX_*_IMAGE_UNIFORMS can report 0.  On such an implementation,
these tests would fail.

This patch skips image testing in any such stages, making them
essentially passthrough shaders.

In BindingImageSingleTest, we also put the binding qualifier in the
fragment shader stage if the stage where we'd normally put it doesn't
support images.  This way, it's guaranteed to exist in at least one
shader stage.

Components: OpenGL

VK-GL-CTS issue: 712

Affects:
* KHR-GL45.shading_language_420pack.binding_images
* KHR-GL45.shading_language_420pack.binding_image_api_override
* KHR-GL45.shading_language_420pack.binding_image_array
* KHR-GL45.shading_language_420pack.binding_image_single
* KHR-GL45.shading_language_420pack.binding_image_default

Change-Id: Ic9eceb4472edff87d5de54ec6318cdb856b0bb8d

6 years agoSkip impossible shader stages in image load store max uniforms test.
Kenneth Graunke [Sun, 24 Sep 2017 23:18:11 +0000 (16:18 -0700)]
Skip impossible shader stages in image load store max uniforms test.

Implementations not required to support images in the geometry stages,
and are allowed to advertise 0 for:

    * GL_MAX_VERTEX_IMAGE_UNIFORMS
    * GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
    * GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
    * GL_MAX_GEOMETRY_IMAGE_UNIFORMS

This means that gl_Max*ImageUniforms may be 0, which means that

    #define N_UNIFORMS gl_MaxVertexImageUniforms
    layout(r32i) uniform iimage2D u_image[N_UNIFORMS];

will define a zero sized array, which is illegal.  To work around this,
simply skip stages that have zero supported image uniforms - there's
nothing to test there, anyway.

Components: OpenGL

VK-GL-CTS issue: 712

Affects:
* KHR-GL45.shader_image_load_store.uniform-limits

Change-Id: I14116ff8b4714e04b35ce0929ed68ed0f38e7d52

6 years agoDelete incorrect invalid map CTS tests.
Kenneth Graunke [Fri, 8 Sep 2017 23:18:49 +0000 (16:18 -0700)]
Delete incorrect invalid map CTS tests.

The citation given in these tests comes from the OpenGL man pages, which
are not authoritative.  The ES 3.2 and GL 4.x specifications say:

   "Effects of Mapping Buffers on Other GL Commands

    Any GL command which attempts to read from, write to, or change the
    state of a buffer object may generate an INVALID_OPERATION error if
    all or part of the buffer object is mapped. However, only commands
    which explicitly describe this error are required to do so. If an
    error is not generated, using such commands to perform invalid
    reads, writes, or state changes will have undefined results and may
    result in GL interruption or termination."

Importantly, it says "_may_ generate an INVALID_OPERATION error".  Some
drivers choose not to implement this to avoid the CPU overhead required
to enforce this optional restriction.

Affects:
- KHR-*.draw_elements_base_vertex_tests.invalid_mapped_bos

VK-GL-CTS issue: 682

Components: OpenGL

Change-Id: I4c0f7785ca7a747145591d071dda6e5231c787d4
(cherry picked from commit 6a50dd2a2cd0a3f867fe6bdabbf8dc9fb678fb99)

6 years agoAdd multiple contexts tests
Piotr Byszewski [Fri, 25 Aug 2017 11:39:58 +0000 (13:39 +0200)]
Add multiple contexts tests

multiple_contexts test (one of shader_subroutine tests) was modified
and moved to contextless module. Shared contexts functionality was
restored in framework.

Components: Framework, OpenGL

VK-GL-CTS issue: 612

Affects:
KHR-NoContext.gl40.multiple_contexts.uniform_preservation
KHR-GL40.shader_subroutine.multiple_contexts

Change-Id: Id170ef37c2e3c488095663c91788978223d356ec
(cherry picked from commit 1b91247d4ad206cbdbef731a2bac9151d6ddda70)

6 years agoRemove ES3PlusWrapperContext
Piotr Byszewski [Thu, 7 Sep 2017 13:35:02 +0000 (15:35 +0200)]
Remove ES3PlusWrapperContext

ES3PlusWrapperContext is not maintained anymore.

Components: Framework

Change-Id: I4327c219d6fd0362da89449884be48c1109a9b62
(cherry picked from commit bda54aaefe2ce0c6bf05b1fc58b98721b9a9f1a2)

6 years agoAlways apply flat qualifier to double inputs, same as int/uint
Ilia Mirkin [Sat, 9 Sep 2017 22:27:30 +0000 (18:27 -0400)]
Always apply flat qualifier to double inputs, same as int/uint

Affects:

KHR-GL45.enhanced_layouts.varying_structure_locations

Components: OpenGL

GitHub Issue: #53

(cherry picked from commit 878a6a5a8343b710ff7a7fcff0c219a25d0c4368)

Change-Id: I84de1d9b42695034a7b2f60c3fc5a19213733085

6 years agoFix KHR-GL45/46.enhanced_layouts.varying_block_member_locations
Eleni Maria Stea [Wed, 20 Sep 2017 11:28:40 +0000 (14:28 +0300)]
Fix KHR-GL45/46.enhanced_layouts.varying_block_member_locations

The stages of the same program used in/out blocks that didn't match
(see section 4.7.1 in OpenGL 4.5 spec: qualification mismatch) and as a
result a linker error was produced. With this change all stages use the
same block definition which is either the 1st or the 2nd depending on
the iteration but not both at the same time:

Goku {
    vec4 gohan;
    vec4 goten;
    vec4 chichi;
} gokuARRAY;

Goku {
    layout (location = 2) vec4 gohan;
    layout (location = 4) vec4 goten;
    layout (location = 6) vec4 chichi;
} gokuARRAY;

Affects:

KHR-GL46.enhanced_layouts.varying_block_member_locations
KHR-GL45.enhanced_layouts.varying_block_member_locations

Components: OpenGL

VK-GL-CTS issue: 703

Change-Id: I03a6a90929e28489a2507838003c62475a8a58b8
(cherry picked from commit 4b6462e469359ac7ddec9c63d042e43ead6031fc)

6 years agoFix locations in enhanced layouts tests
Iago Toral Quiroga [Fri, 22 Sep 2017 09:06:50 +0000 (11:06 +0200)]
Fix locations in enhanced layouts tests

Some of the tests query the last output location in
each shader stage and write an output to them that is
then read in the next shader stage, but they do not
consider if that location exists in the next shader
stage.

Fix this by selecting the maximum output location to
use as the minimum between the stage's maximum output
location and the next stage's maximum input location.

The same issue applies to the maximum input location
available in each shader stage.

Components: OpenGL
VK-GL-CTS issue: 708

Affects:
KHR-GL45.enhanced_layouts.varying_components
KHR-GL45.enhanced_layouts.varying_locations
KHR-GL45.enhanced_layouts.varying_location_limit
KHR-GL46.enhanced_layouts.varying_components
KHR-GL46.enhanced_layouts.varying_locations
KHR-GL46.enhanced_layouts.varying_location_limit

Change-Id: Iacf84bd3eeb33eadaf5a9a816f7ebb7205492af5

6 years agoRemove test cases for doubles from varying components test
Iago Toral Quiroga [Wed, 27 Sep 2017 08:37:56 +0000 (10:37 +0200)]
Remove test cases for doubles from varying components test

Usage of the component layout qualifier (introduced with
ARB_enhanced_layouts) with double types has specific rules and
restrictions (see page 67 of the GLSL 4.60 spec), but the tests
ignore all of these completely and just follow the same code
paths we use for single-precision types, making the resulting
shaders completely bogus.

Remove these tests until we can provide new ones that make
sense for double precision and follow the specs.

Components: OpenGL
VK-GL-CTS issue: 714

Affects:
KHR-GL45.enhanced_layouts.varying_components
KHR-GL46.enhanced_layouts.varying_components

Change-Id: I2d3c1c645f5a18a83feee5c7b28cb023bd255808

6 years agoReplace missmatch_object with invalid_object
James Helferty [Wed, 6 Sep 2017 18:12:53 +0000 (14:12 -0400)]
Replace missmatch_object with invalid_object

Modifies the missmatch_object (sic) test for glCopyImageSubData into an
invalid object test. The changes clarify what the test is actually
testing, and avoids an issue where an unexpectedly valid object name
could cause the test to fail.

Also fixes the spelling of 'mismatch' in several places, corrects the
description for Test [C], and corrects mention of 'CopyImageSubData'.

Components: OpenGL

VK-GL-CTS issue: 669

Affects:
* KHR-GL43/44/45/46.copy_image.missmatch_object, which are now
* KHR-GL43/44/45/46.copy_image.invalid_object
* KHR-GL43/44/45/46.copy_image.samples_missmatch, which are now
* KHR-GL43/44/45/46.copy_image.samples_mismatch

Change-Id: I5127435afc1c116df3d4fa8d6d78397069255603

6 years agoIncrease max for output image asserts to 32768
Mark Adams [Mon, 18 Sep 2017 14:22:49 +0000 (10:22 -0400)]
Increase max for output image asserts to 32768

In framework/qphelper/qpTestLog.c, two assertions assume that the
width and height of the output image are no larger than 16384. But
when testing in 1 x max FBO mode, and max FBO size is larger than
16384, these asserts would fire. This change relaxes the assertions
so they expect sizes up to 32768.

Author: Weiwan Liu <weiwliu@nvidia.com>

Components: Framework

VK-GL-CTS issue: 697

Affects: KHR-GL46.explicit_uniform_location.uniform-loc

Change-Id: If6c674a8728defba971851590b36ac1196c7a39d

6 years agoEnable tests for EXT_shader_group_vote
Piotr Byszewski [Mon, 24 Jul 2017 12:48:21 +0000 (14:48 +0200)]
Enable tests for EXT_shader_group_vote

ShaderGroupVoteTests were generalized so that thay can
test ARB_shader_group_vote for GL core and
EXT_shader_group_vote for ES.

Components: OpenGL

VK-GL-CTS issue: 383

Affects:
KHR-GL45.shader_group_vote.*
KHR-GLES31.core.shader_group_vote.*

Change-Id: I3822cd386e522ceb9f8609544828e2febc257770
(cherry picked from commit 61e9dd88605ae53d48d9059e64d866912fb80ba5)

6 years agoMake DSA storage multisample tests signal unsupported cases
Iago Toral Quiroga [Thu, 31 Aug 2017 08:57:48 +0000 (10:57 +0200)]
Make DSA storage multisample tests signal unsupported cases

The current implementation has a single test instance that
loops over a collection of types and sizes and produces a
single pass/fail result. This means that the test fails
if any of the framebuffer configurations attempted
during the test is unsupported.

This patch rewrites the implementation so that we have a
separate test instance for each configuration instead.
This allows us to signal independent pass/fail/unsupported
results for each one.

Components: OpenGL
Issue: 503

Affects:
KHR-GL45.direct_state_access.textures_storage_multisample (removed)
KHR-GL45.direct_state_access.textures_storage_multisample_<imgtype>_<format> (added)
KHR-GL46.direct_state_access.textures_storage_multisample (removed)
KHR-GL46.direct_state_access.textures_storage_multisample_<imgtype>_<format> (added)

Change-Id: Ic0f1172d47f83b060a27a9c7537c1b85cb4a50e8

6 years agoSplit built_in_functions into separate test
Piotr Byszewski [Thu, 31 Aug 2017 12:08:24 +0000 (14:08 +0200)]
Split built_in_functions into separate test

gpu_shader_fp64.built_in_functions was split
into multiple tests - one per builtin function.

Components: OpenGL

VK-GL-CTS issue: 647

Affects:
KHR-GL40.gpu_shader_fp64.*

Change-Id: I66f48faeb882add083f3c5af2ecadfd55ac4b237

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Alexander Galazin [Fri, 8 Sep 2017 08:12:41 +0000 (10:12 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: I480177a05de5faeb43cf9602554d636ede456bec

6 years agoExtend occlusion query test with fragment discard.
Ari Suonpaa [Tue, 5 Sep 2017 11:29:21 +0000 (14:29 +0300)]
Extend occlusion query test with fragment discard.

Added a variation of occlusion query test where half of the fragments
are discarded. This should show as a result of only half the number
of pixels compared to cases with no discard.

Affects:

dEQP-VK.query_pool.occlusion_query*discard

Components: Vulkan

VK-GL-CTS issue: 632

Change-Id: Ifad54ee71ce1eff1d1a2b86920f228ce9c698eb4

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2
Alexander Galazin [Fri, 8 Sep 2017 07:13:24 +0000 (09:13 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2

Change-Id: Ied1a7d639c56dbdffd3db89085b4b771741e43f7

6 years agoFix race in ShaderBallotFunctionRead test
James Helferty [Wed, 6 Sep 2017 01:47:05 +0000 (21:47 -0400)]
Fix race in ShaderBallotFunctionRead test

The original code contained a race to write an SSBO, since it wasn't
using atomics. This change replaces that code with a much simpler
reimplementation of readFirstInvocationARB() by using findLSB() and
ballotARB() to provide an argument to readInvocationARB().

This change also strips out a now-unused argument and related code
from the shader-builder helper class, which is shared with the other
shader_ballot tests.

Components: OpenGL

VK-GL-CTS issue: 665

Affects:
* KHR-GL43/44/45.shader_ballot_tests.ShaderBallotAvailability
* KHR-GL43/44/45.shader_ballot_tests.ShaderBallotBitmasks
* KHR-GL43/44/45.shader_ballot_tests.ShaderBallotFunctionBallot
* KHR-GL43/44/45.shader_ballot_tests.ShaderBallotFunctionRead

Change-Id: Iaf121ab07e13bf450533c96c95f1b7745631c0c8

6 years agoRender to FBO in tessellation winding order tests
Sunny Sun [Mon, 4 Sep 2017 04:22:59 +0000 (12:22 +0800)]
Render to FBO in tessellation winding order tests

Tessellation winding order tests render
to a new frame buffer to prevent
GL_INVALID_OPERATION from being generated
by glReadPixels.

VK-GL-CTS issue: 668

Components: OpenGL

Affects:
KHR-GL4*.tessellation_shader.winding.*
KHR-GLES3*.core.tessellation_shader.winding.*

Change-Id: Ia1af86df535ee07acd421ad1133497ce8f4e7eee

6 years agoShaderImageLoadStore: relax texture incompleteness requirement
Alejandro Piñeiro [Fri, 25 Aug 2017 23:29:49 +0000 (16:29 -0700)]
ShaderImageLoadStore: relax texture incompleteness requirement

When the test was writen, OpenGL spec specified that image access
would be considered invalid fs the texture is incomplete.

This raised some issues when the texture is mipmap-incomplete (so
incomplete as a whole), but base-complete, and the image is bound to
the base level.

After some debate it was agreed to allow that case.

This patch modifies the test by setting a level different to the base
level for the incomplete source/destination images.

Affects:
KHR-GL45.shader_image_load_store.incomplete_textures

Components: OpenGL

VK-GL-CTS issue: 667
Khronos bugzilla: 16111

Change-Id: I4158ac149e5738c1843acf0b8237e87677bdf00a

6 years agoChange required sample counts for storage images
Graeme Leese [Wed, 30 Aug 2017 15:37:14 +0000 (16:37 +0100)]
Change required sample counts for storage images

Update the API feature info tests to set requiredSampleCounts to 1 for
all images that are not usable as some type of framebuffer attachment.
Previously images that were not usable as attachments but could be used
as a storage image were incorrectly exempted from the requirement.

Components: Vulkan
VK-GL-CTS Issue: 645
Affects: dEQP-VK.api.info.image_format_properties.*

Change-Id: Ia0d09ad0ff51029b75cd3a264860a3dd63c249fb

6 years agoUpdate KC CTS reference
Alexander Galazin [Thu, 7 Sep 2017 15:56:27 +0000 (17:56 +0200)]
Update KC CTS reference

Components: OpenGL
VK-GL-CTS issue: 675

Change-Id: I59d0da35e6310abf7aa93cb55a72ba0ba9a6d89c

6 years agoRefactor time-consuming test group initializers
Paavo Pessi [Fri, 30 Jun 2017 07:18:30 +0000 (10:18 +0300)]
Refactor time-consuming test group initializers

dEQP-VK.pipeline.stencil.*
- Large tests groups were split into smaller test groups.

dEQP-VK.spirv_assembly.instruction.compute.opatomic.*
- A large number of input and expected output value calculations were
  moved from the test group initializer to the actual test runner.

Affects:

dEQP-VK.pipeline.stencil.*
dEQP-VK.spirv_assembly.instruction.*

Components: Vulkan

VK-GL-CTS issue: 151

Change-Id: I7cedc0e252439d7b04117ef0c15236014709b4f8

6 years agoFix VK_KHR_maintenance2 extended_usage_bit tests
Boris Zanin [Thu, 7 Sep 2017 07:19:08 +0000 (09:19 +0200)]
Fix VK_KHR_maintenance2 extended_usage_bit tests

Due to test runs over uncompressed formats it cannot include
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR bit.
Remove this bit from the tests.

Update tests:
 * dEQP-VK.image.extended_usage_bit.*

Components: Vulkan

VK-GL-CTS issue: 673, 614

Change-Id: I0adb26c5306a9d5f49936ffef070050fd5936faa

6 years agoFixup some missing/incorrect flushes and invalidates
Gary Sweet [Mon, 4 Sep 2017 10:14:58 +0000 (11:14 +0100)]
Fixup some missing/incorrect flushes and invalidates

Some of the flushes were too small, and there were a few
missing invalidates.

Affects:
dEQP-VK.ssbo.layout.*
dEQP-VK.pipeline.push_constant.compute_pipeline.simple_test

Components: Vulkan

VK-GL-CTS issue: 660

Change-Id: I27fac24397984f82865683f30b823570c3e52aed

6 years agoTest generating mipmaps with vkCmdBlitImage()
Paavo Pessi [Fri, 25 Aug 2017 07:16:05 +0000 (10:16 +0300)]
Test generating mipmaps with vkCmdBlitImage()

Tests were added to verify that the typical use-case of generating
mipmap levels with vkCmdBlitImage() works for all supported
formats.

Tests in 'from_base_level' group use the base image as a source for all
mip levels and generate all mip levels with a single blit command.

Tests in 'from_previous_level' group use the previous mip level as a
source for the next mip level and generate each mip level with a
separate blit command with barriers between each blit.

New tests:

dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.*
dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.*

Components: Vulkan

VK-GL-CTS issue: 85

Change-Id: I7a9a432b6ed838e4b97649bfae0e3445b2614256

6 years agoAdd HLSL compilation support and some tessellation tests.
Ari Suonpää [Wed, 21 Jun 2017 06:08:02 +0000 (09:08 +0300)]
Add HLSL compilation support and some tessellation tests.

Compilation of HLSL shaders is now supported by adding source code to hlslSources member of program collection.
HLSL shaders were added to tessellation.winding and tessellation.fractional_spacing tests to cover requirements
of VK-GL-CTS issue 334.

Affects:

dEQP-VK.glsl.*
dEQP-VK.tessellation.*
dEQP-VK.api.smoke.create_shader

Components: Vulkan

VK-GL-CTS issue: 334

Change-Id: I40ed8228cd17d922f64679272696451916f8bbc2

6 years agoUpdate GL 4.6 mustpass
Alexander Galazin [Wed, 6 Sep 2017 17:27:56 +0000 (19:27 +0200)]
Update GL 4.6 mustpass

Components: OpenGL

Change-Id: Ib125ae401fb5e629526932fe868c28752e87909d

6 years agoCreate GL 4.6 test package
Piotr Byszewski [Wed, 23 Aug 2017 07:42:41 +0000 (09:42 +0200)]
Create GL 4.6 test package

Ensures that tests for the extensions went into GL 4.6 can be
executed without checking for the extension string if run in
the 4.6 context.

Components: Framework, OpenGL

VK-GL-CTS issue: 640

Affects:
KHR-GL46.*
KHR-GL45.spirv_extensions.*
KHR-NoContext.es2.no_error.*
KHR-NoContext.gl30.no_error.*
KHR-GL45.polygon_offset_clamp.*
KHR-GL45.shader_group_vote_tests.*
KHR-GL43.indirect_parameters_tests.*
KHR-GL44.texture_filter_anisotropic.*
KHR-GLES3.texture_filter_anisotropic.*
KHR-GLES31.core.polygon_offset_clamp.*
KHR-GL45.shader_draw_parameters_tests.*
KHR-GL45.shader_atomic_counter_ops_tests.*
KHR-GL33.pipeline_statistics_query_tests_ARB.*
KHR-GL32.transform_feedback_overflow_query_ARB.*

Change-Id: Idbfacefb5c9e58611c4330b1a054b38bdd72ca87

6 years agoFix bitshift issue in dEQP-VK.api.copy_and_blit.*
Paavo Pessi [Mon, 28 Aug 2017 10:58:34 +0000 (13:58 +0300)]
Fix bitshift issue in dEQP-VK.api.copy_and_blit.*

Use 64-bit integers to calculate maximum color value to avoid situations
where 32-bit integers are shifted left by 32 bits.

Affects:

dEQP-VK.api.copy_and_blit.*

Components: Vulkan

VK-GL-CTS issue: 643

Change-Id: I90aab8a31a363716a3bb1ce0ca79272adf3b2b1e

6 years agoAdd test to stress wide OpPhi instructions
Jari Komppa [Tue, 22 Aug 2017 11:50:17 +0000 (14:50 +0300)]
Add test to stress wide OpPhi instructions

New test that has a 1024 case wide OpPhi instruction.

The test has been written so that it is easy to change to any desirable
width; based on the SPIR-V specification a width of 16k should be
acceptable (as there can be 16k switch cases). However, that would
generate a rather large (about 50kLOC) shader.

Affects:

dEQP-VK.spirv_assembly.instruction.compute.opphi.wide

Components: Vulkan

VK-GL-CTS issue: 259

Change-Id: Ide349e19ab4811c8c8c13bff0d72ac6cf19349ed

6 years agoMerge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/master
Alexander Galazin [Wed, 6 Sep 2017 15:50:55 +0000 (17:50 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/master

Change-Id: Ibe5a9c6ef66a017d9147574f0220d75058d977d2

6 years agoMerge vk-gl-cts/opengl-es-cts-3.2.3 into vk-gl-cts/opengl-es-cts-3.2.4
Alexander Galazin [Wed, 6 Sep 2017 15:50:54 +0000 (17:50 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.3 into vk-gl-cts/opengl-es-cts-3.2.4

Change-Id: I99f3421afed52b3f80ca8041a80667ca40966a9c

6 years agoAdd more allowed 'dot' alternatives
Alexander Galazin [Tue, 22 Aug 2017 13:59:49 +0000 (15:59 +0200)]
Add more allowed 'dot' alternatives

Expanded dot may be re-associated in multiple ways.
Add all possible alternatives to prevent precision failures.

Components: AOSP

VK-GL-CTS issue: 634
Google issue: 28767510

Affects:
dEQP-GLES3.functional.shaders.builtin_functions.precision.dot.*
dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.*
dEQP-GLES31.functional.shaders.builtin_functions.precision.dot.*
dEQP-GLES31.functional.shaders.builtin_functions.precision.reflect.*

Change-Id: I2a91add1b92363acab2172179320cd880da779ec
(cherry picked from commit e00e942ef2600253cf9ae16815922fa6617d68bf)

6 years agoMerge changes Ie1e6a555,If8a4860a
Gerrit Code Review [Wed, 6 Sep 2017 15:45:25 +0000 (11:45 -0400)]
Merge changes Ie1e6a555,If8a4860a

* changes:
  Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
  Run Draw*BaseVertex if EXT_draw_elements_base_vertex is present

6 years agoRun Draw*BaseVertex if EXT_draw_elements_base_vertex is present
Alexander Galazin [Wed, 16 Aug 2017 09:36:01 +0000 (11:36 +0200)]
Run Draw*BaseVertex if EXT_draw_elements_base_vertex is present

Draw*BaseVertex methods are enabled if
the EXT_draw_elements_base_vertex extension is present
Follow-up on 1b1ea05b

Components: AOSP

Affects: dEQP-GLES31.functional.draw_base_vertex.*

Change-Id: If8a4860a956c771ec5ea3341e2227f437b12a286

6 years agoMerge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
Alexander Galazin [Wed, 6 Sep 2017 15:08:02 +0000 (17:08 +0200)]
Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master

Change-Id: Ie1e6a555ace52a51725be96da0fa272bf4f3b1cc

6 years agoUse SRC image layout for copy image to buffer
Slawomir Cygan [Wed, 6 Sep 2017 14:47:04 +0000 (16:47 +0200)]
Use SRC image layout for copy image to buffer

The test was calling vkCmdCopyImageToBuffer with
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL layout, which is not a valid
parameter value for this function (and not the layout the image is currently in).

Affects: dEQP-VK.memory.binding.*.*.image_*

Components: Vulkan

VK-GL-CTS issue: 666

Change-Id: Ifb5a1bd8726535de02a0dc134f5ac76a2734a661

6 years agoMerge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/master
Alexander Galazin [Wed, 6 Sep 2017 13:40:53 +0000 (15:40 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/master

Change-Id: I58b5051e5739be5f009061b09f1b2d65b68f8c37

6 years agoMerge vk-gl-cts/opengl-es-cts-3.2.3 into vk-gl-cts/opengl-es-cts-3.2.4
Alexander Galazin [Wed, 6 Sep 2017 13:40:52 +0000 (15:40 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.3 into vk-gl-cts/opengl-es-cts-3.2.4

Change-Id: I6696e0770a9d8245cd2e5972bc1013e689fb4334

6 years agoRestore fuzzyCompare() sample rate
Mark Adams [Thu, 31 Aug 2017 19:47:15 +0000 (15:47 -0400)]
Restore fuzzyCompare() sample rate

Commit 57c002a31612855e744c33ac698590da0e3d02d3 changed how the stride
was calculated for sampling values in order to avoid double-counting
values. However, it also reduced the number of values sampled and
that's resulting in both GLES and Vulkan failures.

This patch restores the original stride calculation, but changes the
parameters to rnd.getInt() to ensure that 0 is never returned from it.

Components: Framework

VK-GL-CTS issue: 658

Change-Id: I4c7e6d39017bbfc38bcd155037d3b4d40ce46ca7

6 years agoUpdate GL CTS Readme
Alexander Galazin [Thu, 31 Aug 2017 10:41:59 +0000 (12:41 +0200)]
Update GL CTS Readme

Components: OpenGL

Change-Id: Ie3d8e8d7d20716d07d88a6aa2c8f09b1748ace1f

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Alexander Galazin [Wed, 6 Sep 2017 10:43:54 +0000 (12:43 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: Ide2f570cd881a3eb4e302d22a02207e472e427b4

6 years agoFix unused uniform bug in EGL robustness tests
Mika Isojrvi [Tue, 5 Sep 2017 19:42:54 +0000 (19:42 +0000)]
Fix unused uniform bug in EGL robustness tests
am: 7806d74666

Change-Id: Idb3b53bc621c37063d82eda265173ae3bd9395bd

6 years agoDo not use ycbcr formats if ycbcr extension is not supported
Slawomir Cygan [Tue, 5 Sep 2017 14:39:12 +0000 (16:39 +0200)]
Do not use ycbcr formats if ycbcr extension is not supported

Spec says (on "vkGetPhysicalDeviceFormatProperties"):
"format must be a valid VkFormat value"

Formats from future or unsupported extensions do not
constitute a "valid VkFormat values".

Affects: dEQP-VK.memory.requirements.*.image.*

Components: Vulkan

VK-GL-CTS issue: 663

Change-Id: Ia284977b830d5fda14bcbd9d96010995d84014d5

6 years agoMerge "Fix missing SSBO binding in EGL robustness tests"
Mika Isojärvi [Tue, 5 Sep 2017 17:25:37 +0000 (17:25 +0000)]
Merge "Fix missing SSBO binding in EGL robustness tests"
am: e19c3ff127

Change-Id: Ie8ee42a70186d5d8cd481b34901aa3b2e488d08d

6 years agoFix unused uniform bug in EGL robustness tests
Mika Isojärvi [Thu, 31 Aug 2017 19:13:05 +0000 (12:13 -0700)]
Fix unused uniform bug in EGL robustness tests

Bug: 64845766
Bug: 65175554
Test: Ran tests on couple of Google devices
Change-Id: Iee2918c1e45ad305dd9ca30f1b81998bdac06127

6 years agoMerge "Fix missing SSBO binding in EGL robustness tests"
Treehugger Robot [Tue, 5 Sep 2017 17:18:37 +0000 (17:18 +0000)]
Merge "Fix missing SSBO binding in EGL robustness tests"

6 years agoFix issues in pipeline.timestamp.transfer_tests am: 0f672f2a20 am: 9e85a126d2
Pyry Haulos [Tue, 5 Sep 2017 15:31:59 +0000 (15:31 +0000)]
Fix issues in pipeline.timestamp.transfer_tests am: 0f672f2a20 am: 9e85a126d2
am: 342eb176e6

Change-Id: Icd88618ff5eb7cebfc9b0e210a24ecf4da68598f

6 years agoFix issues in pipeline.timestamp.transfer_tests am: 0f672f2a20
Pyry Haulos [Tue, 5 Sep 2017 15:22:27 +0000 (15:22 +0000)]
Fix issues in pipeline.timestamp.transfer_tests am: 0f672f2a20
am: 9e85a126d2

Change-Id: I86a852a2216971095d4aa256a97f0b8e68e73646

6 years agoFix issues in pipeline.timestamp.transfer_tests
Pyry Haulos [Tue, 5 Sep 2017 15:14:23 +0000 (15:14 +0000)]
Fix issues in pipeline.timestamp.transfer_tests
am: 0f672f2a20

Change-Id: Ib7e13db1c7801095b925890f226a38969a1b418e

6 years agoFixup some missing/incorrect flushes and invalidates
Gary Sweet [Mon, 4 Sep 2017 09:39:36 +0000 (10:39 +0100)]
Fixup some missing/incorrect flushes and invalidates

Some of the flushes were too small, and there were a few
missing invalidates.

Affects:
dEQP-VK.ssbo.layout.*
dEQP-VK.pipeline.push_constant.compute_pipeline.simple_test

Components: Vulkan

VK-GL-CTS issue: 660

Change-Id: Id29b59d127e004a028c04a1075db563d697140a1

6 years agoFix missing SSBO binding in EGL robustness tests
Mika Isojärvi [Thu, 31 Aug 2017 18:54:48 +0000 (11:54 -0700)]
Fix missing SSBO binding in EGL robustness tests

Bug: 64845581
Bug: 65175642
Test: Ran the tests on couple of Google devices
Change-Id: I3a98fe12802e6951483499e800cd3fe7412e37f0

6 years agoWhitelist new extensions for VK 1.0.2.6
Daniel Koch [Thu, 31 Aug 2017 13:48:53 +0000 (09:48 -0400)]
Whitelist new extensions for VK 1.0.2.6

VK-GL-CTS issue: 653
Component: Vulkan
Affects:
dEQP-VK.api.info.device.extensions

Change-Id: I7f5ef7511ce8312e67833e07c154cd6b9fea6041

6 years agoAdd tests for image copies between YCbCr formats
Mika Isojärvi [Tue, 15 Aug 2017 23:57:24 +0000 (16:57 -0700)]
Add tests for image copies between YCbCr formats

Components: Vulkan, Framework
VK-GL-CTS issue: 111

Change-Id: I3a7050ae5605c4397cd678e14438f851a7cf48ce
(cherry picked from commit f24269bdd0c4d3801c2118b153082f0b0223f55a)

6 years agoAdd tests for VK_KHR_sampler_ycbcr_conversion
Mika Isojärvi [Tue, 16 May 2017 21:17:49 +0000 (14:17 -0700)]
Add tests for VK_KHR_sampler_ycbcr_conversion

Components: Vulkan, Framework
VK-GL-CTS issue: 111

Change-Id: Id0810b196f0a148903922df3fc08f1c5db88f86e
(cherry picked from commit 595b5f763a8f6ef1c68bfd133a55ded9c25ac101)

6 years agoTest VK_KHR_dedicated_allocation mem requirement queries
Boris Zanin [Fri, 12 May 2017 08:11:01 +0000 (10:11 +0200)]
Test VK_KHR_dedicated_allocation mem requirement queries

Add tests:
 * dEQP-VK.memory.requirements.dedicated_allocation.buffer.*
 * dEQP-VK.memory.requirements.dedicated_allocation.image.*

Components: Vulkan

VK-GL-CTS issue: 391

Change-Id: I9510464987e33b395a5ac20c2fdb9129eefd91da
(cherry picked from commit 6c472cc5e98a1a73aeac019ce34cccac7f3fa30e)

6 years agoAdd tests for FragCoord interaction with multisampling
David Sodman [Fri, 24 Feb 2017 19:04:46 +0000 (11:04 -0800)]
Add tests for FragCoord interaction with multisampling

Components: Vulkan
VK-GL-CTS issue: 89

Test: fragcoord_msaa, frontface, fragdepth, clipping
Change-Id: Ibf342e63f224b88fe0b0cffde59b10b34afd1faf
(cherry picked from commit 69a7a0079a6cc06d556ecb5314f275d2fa01a60d)

6 years agoFix VS12 compilation error (typedef)
Maciej Jesionowski [Wed, 26 Jul 2017 13:53:13 +0000 (15:53 +0200)]
Fix VS12 compilation error (typedef)

Change-Id: Iebfece1455df2a49c79885d42f43817001a31b84
(cherry picked from commit 68c41978cf7a76391e898af7faaddea0598a3911)

6 years agoFix wrong transition in dEQP-VK.glsl.builtin_var.fragdepth
Slawomir Cygan [Wed, 5 Jul 2017 17:17:02 +0000 (19:17 +0200)]
Fix wrong transition in dEQP-VK.glsl.builtin_var.fragdepth

The test was using vkCmdClearDepthStencilImage to clear an
image, than used this image as a depth attachment in
redering performed by VulkanDrawContext utility.

However, this utility always starts the renderpass on depth
attachment from UNDEFINED layout. As no depth clear is done
in the renderpass, the depth attachment contents are undefined
(and initially cleared image contents may be corrupted).

The easiest fix here is to move the clear to LOAD_OP - as
is already done for color, leaving the UNDEFINED layout as is.

Affects: dEQP-VK.glsl.builtin_var.fragdepth*

Components: Vulkan
VK-GL-CTS issue: 559

Change-Id: Icef3289ba62f71bf1ed989f84085a4d9d3b7218a
(cherry picked from commit f3a36239082b721e1f5f6849afc70af65b42e3ed)

6 years agoAdd test for FragDepth shader built-in
David Sodman [Fri, 24 Feb 2017 18:41:59 +0000 (10:41 -0800)]
Add test for FragDepth shader built-in

Components: Vulkan

VK-GL-CTS issue: 93

Test: fragdepth, frontface, clipping
Change-Id: I531e39a58dd6b577108bff14b2206d7bf9d9cd4f
(cherry picked from commit 3aeb0c565fe64441466247fe381fc815209d46e4)

6 years agoExtend gl_FrontFacing tests
David Sodman [Tue, 6 Sep 2016 21:05:59 +0000 (14:05 -0700)]
Extend gl_FrontFacing tests

Update gl_FrontFacing tests to include more tests as well as to use the
vktDrawUtil utility class

Change-Id: If94fb552f5f9366c79ffa3fcac6f085611a23f65
(cherry picked from commit 417115b2676c3064a06385184573b6d7a0644f42)

6 years agoAdd ability to generate images with the reference renderer
David Sodman [Fri, 9 Sep 2016 02:58:35 +0000 (19:58 -0700)]
Add ability to generate images with the reference renderer

*Separate DrawContext into a DrawContext and DrawContextState to reflect
  graphics API's are split between state and action parts
* Add abstract DrawContext class

Test: Test clipping and synchronization primitives

Change-Id: I9f3945c6c3de169325fadea7bf70a9d5d7bfd932
(cherry picked from commit 11da53fb71eced942e89bac59407a5681dba3bb1)