platform/upstream/VK-GL-CTS.git
7 years agoAllow to use private regisry mirror for .inl file generation
Alexander Galazin [Mon, 3 Jul 2017 09:44:44 +0000 (11:44 +0200)]
Allow to use private regisry mirror for .inl file generation

Components: Framework

VK-GL-CTS issue: 501

Affects: *.inl files

Change-Id: I83460be272630c15446343b62ae9c810879d1ebb

7 years agoMerge vk-gl-cts/opengl-es-cts-3.2.3 into vk-gl-cts/master
Alexander Galazin [Tue, 11 Jul 2017 09:39:46 +0000 (11:39 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.3 into vk-gl-cts/master

Change-Id: I38c411fd5bdd838539af37d5ccbebecb2118159d

7 years agoMerge vk-gl-cts/opengl-es-cts-3.2.2 into vk-gl-cts/opengl-es-cts-3.2.3
Alexander Galazin [Tue, 11 Jul 2017 09:39:43 +0000 (11:39 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.2 into vk-gl-cts/opengl-es-cts-3.2.3

Change-Id: I151494637b7f30099fe55c84c5578fec9da270dd

7 years agoAvoid accessing out-of-bounds input patch vertices
Ilia Mirkin [Sun, 25 Jun 2017 16:43:32 +0000 (12:43 -0400)]
Avoid accessing out-of-bounds input patch vertices

Fixes github issue #48.

Affects:

KHR-GL45.shader_subroutine.subroutines_with_separate_shader_objects

Components: OpenGL
(cherry picked from commit a02d5d805e14805aacc4c8aea5600410e6a75439)

Change-Id: I74a9ce73e6ef1b82ca36d5a47ade9a6bc7724bdb

7 years agoRestore few tests in 1.0.3/master mustpass
Alexander Galazin [Mon, 10 Jul 2017 19:54:44 +0000 (21:54 +0200)]
Restore few tests in 1.0.3/master mustpass

Change-Id: I1f4d981d73ea0e5d06e4be8e7e011932a09ef103

7 years agoMerge branch vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Alexander Galazin [Mon, 10 Jul 2017 19:15:01 +0000 (21:15 +0200)]
Merge branch vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: I393c1b28bd020822cb2bb6d564b5de2b6b87b55a

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2-confidential-rc into vk-gl-cts/vulkan-cts-1.0.2
Alexander Galazin [Mon, 10 Jul 2017 15:52:41 +0000 (17:52 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2-confidential-rc into vk-gl-cts/vulkan-cts-1.0.2

Change-Id: I328c6582580bf287a02201c200fb4e477c259508

7 years agoFix MultisampleRenderPassTest layout transitions
Tony Barbour [Wed, 28 Jun 2017 16:41:39 +0000 (10:41 -0600)]
Fix MultisampleRenderPassTest layout transitions

Section 6.6 of the Vulkan spec says:

If vkCmdPipelineBarrier is called within a render pass instance, the
oldLayout and newLayout members of an element of pImageMemoryBarriers
must be equal

so move the layout transition in this test to be outside the renderpass

Affects:

dEQP-VK.renderpass.multisample_resolve.*

Components: Vulkan

VK-GL-CTS Issue: 540

Change-Id: Ifb61c1d00db9fa6042aa51d4955c8eb89f021f1e

7 years agoMove context flags tests to custom context package
Piotr Byszewski [Wed, 21 Jun 2017 07:52:12 +0000 (09:52 +0200)]
Move context flags tests to custom context package

Previously context flags tests were only executed for ES32. In this
change they were moved to common folder and are executed from
package that has no default context.

Components: OpenGL

VK-GL-CTS issue: 351

Affects: KHR-NoContext.*.context_flags.*

Change-Id: Ib68cc85e8c3188ca4bfcb15046da85c9d00b55e7

7 years agoAdded logging of thread count in some mt tests
Jari Komppa [Tue, 27 Jun 2017 12:14:25 +0000 (15:14 +0300)]
Added logging of thread count in some mt tests

This allows checking between two runs of the test suite to verify that
the same number of threads were used when running the tests.

The number of threads is (already) clamped between 2 and 8.

Affects:

dEQP-VK.api.object_management.multithreaded_per_thread_device*

Components: Vulkan

VK-GL-CTS issue: 80

Change-Id: I23ad351377a539865f42c1d57f3e01bb81be17e0

7 years agoAdd tests for vkCmdClearColorImage with VK_REMAINING_ARRAY_LAYERS
Paavo Pessi [Tue, 4 Jul 2017 06:50:15 +0000 (09:50 +0300)]
Add tests for vkCmdClearColorImage with VK_REMAINING_ARRAY_LAYERS

Tests were added to verify that using VK_REMAINING_ARRAY_LAYERS
as layerCount in VkImageSubresourceRange works as intended when
clearing color and depth image layers.

New tests:

dEQP-VK.api.image_clearing.clear_color_image.1d_*_remaining_array_layers
dEQP-VK.api.image_clearing.clear_color_image.2d_*_remaining_array_layers
dEQP-VK.api.image_clearing.clear_depth_stencil_image.2d_*_remaining_array_layers

Affects:

dEQP-VK.api.image_clearing.clear_color_image.*
dEQP-VK.api.image_clearing.clear_depth_stencil_image.*

Components: Vulkan

VK-GL-CTS issue: 544

Change-Id: Ic4cd1d567bd7e45855dfeb7bfd58e45b986e07b1

7 years agoTest for usage of enable all extensions
Piotr Byszewski [Mon, 3 Jul 2017 15:16:32 +0000 (17:16 +0200)]
Test for usage of enable all extensions

After removing GTF there was a coverage loss related to testing enable all.
This patch resolves that by extending invalid behavior tests.

Components: OpenGL

VK-GL-CTS issue: 453

Affects:
KHR-GLES3.shaders.preprocessor.extensions.invalid_behavior_3_*

Change-Id: Iceb7da497f50d91f905efd5a37d8c45b21e98080

7 years agoAdd exposed extensions test
Piotr Byszewski [Tue, 4 Jul 2017 08:29:08 +0000 (10:29 +0200)]
Add exposed extensions test

GL implementations should not expose any OES extensions
except GL_OES_EGL_image.
GLES implementations should not expose any ARB extensions.

Components: OpenGL

VK-GL-CTS issue: 49

Affects:
KHR-GL40.exposed_extensions.*
KHR-GLES3.exposed_extensions.*

Change-Id: Ic3a11850bb1b5c4414cdd9f04614b51d428d6a4f

7 years agoFix gcc 5.4 warnings
Alexander Galazin [Wed, 5 Jul 2017 15:09:38 +0000 (17:09 +0200)]
Fix gcc 5.4 warnings

gcc 5.4 (default in Ubuntu 16.04) reports conversion to int
warnings/errors for bitwise or and assign operator.

GCC bug: 40752

Components: Framework, Vulkan

Change-Id: Ia857c44cf54d5571d857e1fada0e2aaa8f4b950d

7 years agoFix for variable pointer (writes) in tess.control
Ehsan Nasiri [Fri, 30 Jun 2017 22:58:19 +0000 (18:58 -0400)]
Fix for variable pointer (writes) in tess.control

Use patch index to avoid multiple increments

VK-GL-CTS issue: 543

Components: Vulkan

Affects:
dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes*tess*

Change-Id: If518fdae084722cc28f19044186dbda07880a50c

7 years agocross_instance sync tests: add support for non-KMT Win32 handles
Slawomir Cygan [Mon, 3 Jul 2017 13:45:47 +0000 (15:45 +0200)]
cross_instance sync tests: add support for non-KMT Win32 handles

This adds tests for *HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR
handle types.

Affects: dEQP-VK.synchronization.cross_instance.*win32*

VK-GL-CTS issue: 547
Components: Vulkan

Change-Id: I70a577195f5b303c7fd80f88606f35b83a1b2b11

7 years agoWrong handle in external fence reset tests
Slawomir Cygan [Mon, 3 Jul 2017 16:50:01 +0000 (18:50 +0200)]
Wrong handle in external fence reset tests

The `importFence()` function resets the passed handle at the end,
so in two consecutive calls the second one is going to use the
wrong handle.

To avoid that the handle is duplicated.

Affects: dEQP-VK.api.external.fence.*reset_*

VK-GL-CTS issue: 549
Components: Vulkan

Change-Id: I2218d2f5ceffe52afe6a2306c3eebac79a24b5a9

7 years agoFix gcc 6.3 warnings
Alexander Galazin [Wed, 5 Jul 2017 13:29:21 +0000 (15:29 +0200)]
Fix gcc 6.3 warnings

Components: Vulkan

Change-Id: I0e4f8d09fef5a6d08a7b7db975de4a68879ea3f8

7 years agoAdd a test for creating device with unsupported features.
Ari Suonpaa [Wed, 28 Jun 2017 07:51:30 +0000 (10:51 +0300)]
Add a test for creating device with unsupported features.

Affects:

dEQP-VK.api.device_init.create_device_unsupported_features

Components: Vulkan

VK-GL-CTS issue: 403

Change-Id: Ibf3b583e3f64e412972493a85f5437502d205db0

7 years agoAdded OpAtomic* test for graphics pipeline
Ari Suonpää [Tue, 13 Jun 2017 05:24:56 +0000 (08:24 +0300)]
Added OpAtomic* test for graphics pipeline

Affects:

dEQP-VK.glsl.atomic_operations.*

Components: Vulkan

VK-GL-CTS issue: 360

Change-Id: I833204021e978d0231fbe86e18ad116a034996fe

7 years agoGL_ARB_enhanced_layouts: use proper max size value
Andres Gomez [Thu, 22 Jun 2017 21:31:44 +0000 (00:31 +0300)]
GL_ARB_enhanced_layouts: use proper max size value

When checking for invalid offset alignment in uniform blocks we have
to take into account the MAX_UNIFORM_BLOCK_SIZE limit but, when trying
to do the same for Shader Storage Blocks, the limit to have into
account is MAX_SHADER_STORAGE_BLOCK_SIZE.

From page 52 (page 65 of the PDF) of the OpenGL 3.1 spec:

  "2.11.4 Uniform Variables

   ...

   The total amount of buffer object storage available for any given
   uniform block is subject to an implementation-dependent limit. The
   maximum amount of available space, in basic machine units, can be
   queried by calling GetIntegerv with the constant
   MAX_UNIFORM_BLOCK_SIZE . If the amount of storage required for a
   uniform block exceeds this limit, a program may fail to link."

From page 128 (page 129 of the PDF) of the OpenGL 4.3 spec:

  "7.8 Shader Buffer Variables and Shader Storage Blocks

   ...

   The total amount of buffer object storage that can be accessed in
   any shader storage block is subject to an implementation-dependent
   limit. The maximum amount of available space, in basic machine
   units, can be queried by calling GetIntegerv with the constant
   MAX_SHADER_STORAGE_BLOCK_SIZE . If the amount of storage required
   for any shader storage block exceeds this limit, a program will
   fail to link."

Affects:

GL44-CTS.enhanced_layouts.uniform_block_member_invalid_offset_alignment
GL44-CTS.enhanced_layouts.ssb_member_invalid_offset_alignment

Components: OpenGL

VK-GL-CTS issue: 527

Change-Id: I9185f32a6a90643aa1d3fca0e27a70dbd80d6e16

7 years agoHandle component aliasing corner cases
Jeannot Breton [Wed, 21 Jun 2017 16:22:41 +0000 (11:22 -0500)]
Handle component aliasing corner cases

This change avoid vertex shader where every path access multiple
inputs aliased to any single component since an error is permitted
but not required

The change avoid dvec3/dvec4 since it should not be declared with
a component

The change avoid double/dvec2 with a component 1 or 3

Affects:

KHR-GL45.enhanced_layouts.input_component_aliasing

Components: OpenGL

VK-GL-CTS issue: 524

Change-Id: I062b4321becf96a218b8643ee1d089105bccc63a

7 years agoDouble fragment inputs require flat qualifier
Juan A. Suarez Romero [Wed, 21 Jun 2017 10:17:33 +0000 (10:17 +0000)]
Double fragment inputs require flat qualifier

According to GLSL spec, fragment inputs of double type require "flat"
qualifier.

Affects:
KHR-GL45.enhanced_layouts.xfb_global_buffer

VK-GL-CTS issue: 522
Components: OpenGL

Change-Id: Ibd404b0ad63cbee09e157ea65a5efda932582a62

7 years agoFix incorrect buffer size expectation in DSA XFB buffer test
Iago Toral Quiroga [Wed, 14 Jun 2017 09:00:13 +0000 (11:00 +0200)]
Fix incorrect buffer size expectation in DSA XFB buffer test

The test creates two buffers, both with a size 's_bo_size' in
BuffersTest::prepareTestSetup(), then binds the first buffer
to binding point 0 and each half of the other buffer to
binding points 1 and 2 respectively.

Later, the test queries buffer sizes for each binding and
expects the size of the buffer in the first binding to be 0
when it should be 's_bo_size'.

Components: OpenGL
VK-GL-CTS issue: 502

Affects:
KHR-GL45.direct_state_access.xfb_buffers

Change-Id: I394622bb7bba076c68c5cca968c6b1cbf34e2ea9

7 years agoCall glValidateProgram() before querying GL_VALIDATE_STATUS
Iago Toral Quiroga [Tue, 13 Jun 2017 08:26:17 +0000 (10:26 +0200)]
Call glValidateProgram() before querying GL_VALIDATE_STATUS

The DSA program_pipelines_functional test queries this param
without calling glValidateProgram() first, which is not
correct:

From section 7.13. SHADER, PROGRAM, AND PROGRAM PIPELINE QUERIES:

"If pname is VALIDATE_STATUS, TRUE is returned if the last
 call to ValidateProgram (see section 11.1.3.11) with
 program was successful, and FALSE is returned otherwise."

Components: OpenGL
VK-GL-CTS issue: 498

Affects:
KHR-GL45.direct_state_access.program_pipelines_functional

Change-Id: I4de325f0779c3330523b1fac1845d287b790ee3a

7 years agoSet DrawBuffers for each fragment color output
Jeannot Breton [Tue, 20 Jun 2017 21:25:01 +0000 (16:25 -0500)]
Set DrawBuffers for each fragment color output

Update the DrawBuffers call to properly map the fragment color
output to it expected color attachment

Affects:

KHR-GL45.enhanced_layouts.fragment_data_location_api

Components: OpenGL

VK-GL-CTS issue: 517

Change-Id: I54678528b59b9732fbe466df1a50707a3a4716ba

7 years agoDSA texture storage/subimage tests sample from incomplete textures
Iago Toral Quiroga [Mon, 12 Jun 2017 09:04:18 +0000 (11:04 +0200)]
DSA texture storage/subimage tests sample from incomplete textures

These tests upload data to a texture that is then sampled
from a shader but the test never setup sampling filters
for the texture, leaving it incomplete.

Components: OpenGL
VK-GL-CTS issue: 493

Affects:
KHR-GL45.direct_state_access.textures_storage_and_subimage

Change-Id: I1bb10af3f3760ffe7f45f9731b40abb2f3aef223

7 years agoRevert "Fix tessellation tests do not test undefined tessLevel inputs"
Alexander Galazin [Sat, 1 Jul 2017 10:32:44 +0000 (06:32 -0400)]
Revert "Fix tessellation tests do not test undefined tessLevel inputs"

This reverts commit a93fab5d2980a90cd70895d874cdc44c6e858199.

Change-Id: I2995e3cdb4533d1d7108424e0da2c60876f4fa63

7 years agoFix tessellation tests do not test undefined tessLevel inputs
Slawomir Cygan [Mon, 12 Jun 2017 12:49:33 +0000 (14:49 +0200)]
Fix tessellation tests do not test undefined tessLevel inputs

The spec says g gl_TessLevelOuter[2], gl_TessLevelOuter[3], and
both values in gl_TessLevelInner inputs  are undefined in tessellation
 evaluation shader, if isolines are tessellated.

To avoid testing undefined tessellation level inputs, change
the tessellated primitive type to QUADS

Affects:
KHR-GL45.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_tessLevel

Components: OpenGL

VK-GL-CTS issue: 488

Change-Id: I86616302ebb857e7421bc4248f2586ebc25729a7

7 years agoMove robustness tests to custom context package
Piotr Byszewski [Tue, 16 May 2017 14:10:34 +0000 (16:10 +0200)]
Move robustness tests to custom context package

GL45 and ES32 robustness tests require custom context. Previously
this was handled by creating concurrent context but this introduced
issues during context destruction. This change moves robustness
tests to common folder and executes them from separate package that
does not have default context.

Components: OpenGL, Framework

VK-GL-CTS issue: 351

Affects: KHR-NoContext.*.robustness.*

Change-Id: I5abed300d37b0748dbef0c5538acd6f5641163dd

7 years agoAdd limits_tests implementation
Piotr Byszewski [Wed, 14 Jun 2017 16:12:12 +0000 (18:12 +0200)]
Add limits_tests implementation

This change adds generic limit test class that can
be used to test all types of limits and compare them
to corresponding GLSL builtin.
This change uses this generic limit test to test all
GL45 limits.

Affects: KHR-GL45.limits_tests.*

Components: OpenGL

VK-GL-CTS issue: 42

Change-Id: I2970595377c75e243e72358e24422b4a312e0ad8

7 years agoGL_ARB_enhanced_layouts: consider std140 rules
Andres Gomez [Wed, 1 Mar 2017 13:43:24 +0000 (15:43 +0200)]
GL_ARB_enhanced_layouts: consider std140 rules

In the case of UBOs and SSBOs, the offset for a block member depends
on the base alignment of its type. When the block uses the std140
packaging we have to take into account its specific rules for the
calculation of the base alignment for such data type.

From the GL_ARB_enhanced_layouts spec:

    "The specified offset must be a multiple of the base alignment of
     the type of the block member it qualifies, or a compile-time
     error results."

From page 61 (page 74 of the PDF) of the OpenGL 3.1 spec:

    "2.11. VERTEX SHADERS

     ...

     Standard Uniform Block Layout

     ...

     When using the std140 storage layout, structures will be laid out
     in buffer storage with its members stored in monotonically
     increasing order based on their location in the declaration. A
     structure and each structure member have a base offset and a base
     alignment, from which an aligned offset is computed by rounding
     the base offset up to a multiple of the base alignment.

     ...

     1. If the member is a scalar consuming N basic machine units, the
        base alignment is N.

     2. If the member is a two- or four-component vector with
        components consuming N basic machine units, the base alignment
        is 2N or 4N , respectively.

     3. If the member is a three-component vector with components
        consuming N basic machine units, the base alignment is 4N .

     4. If the member is an array of scalars or vectors, the base
        alignment and array stride are set to match the base alignment
        of a single array element, according to rules (1), (2),
        and (3), and rounded up to the base alignment of a vec4. The
        array may have padding at the end; the base offset of the
        member following the array is rounded up to the next multiple
        of the base alignment.

     5. If the member is a column-major matrix with C columns and R
        rows, the matrix is stored identically to an array of C column
        vectors with R compo- nents each, according to rule (4)."

From page 128 (page 149 of the PDF) of the OpenGL 4.3 spec:

    "7.8 Shader Buffer Variables and Shader Storage Blocks

     ...

     Buffer variables in shader storage blocks are represented in
     memory in the same way as uniforms stored in uniform blocks, as
     described in section 7.6.2.1.  When a program is linked
     successfully, each active buffer variable is assigned an offset
     relative to the base of the buffer object binding associated with
     its shader storage block. For buffer variables declared as arrays
     and matrices, strides between array elements or matrix columns or
     rows will also be assigned. Offsets and strides of buffer
     variables will be assigned in an implementation-dependent manner
     unless the shader storage block is declared using the std140 or
     std430 storage layout qualifiers. For std140 and std430 shader
     storage blocks, offsets will be assigned using the method
     described in section 7.6.2.2."

Affects:

GL44-CTS.enhanced_layouts.uniform_block_member_invalid_offset_alignment
GL44-CTS.enhanced_layouts.ssb_member_invalid_offset_alignment

Components: OpenGL

VK-GL-CTS issue: 519

Change-Id: I5176d555605a8c482377ebfa5fbf16bc0dbf741a

7 years agoRemove individual 3D slice layout transitions
Noah Fredriks [Wed, 31 May 2017 18:01:35 +0000 (14:01 -0400)]
Remove individual 3D slice layout transitions

For VK_KHR_maintenance1 render to 3D slice tests using
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBILITY_BIT_KHR, layout
transitions from undefined would actually affect all
slices in the complete mip level instead of just those
specified in the image view.  Therefore, don't use
VK_IMAGE_LAYOUT_UNDEFINED when previous subpasses may
have already rendered to the other slices.

Affects: dEQP-VK.pipeline.render_to_image.3d.*

VK-GL-CTS issue: 476
Components: Vulkan

Change-Id: I0cfde62c03f4400246eef192a382d5593c6997e5

7 years agoRemove individual 3D slice layout transitions
Noah Fredriks [Wed, 31 May 2017 18:01:35 +0000 (14:01 -0400)]
Remove individual 3D slice layout transitions

For VK_KHR_maintenance1 render to 3D slice tests using
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBILITY_BIT_KHR, layout
transitions from undefined would actually affect all
slices in the complete mip level instead of just those
specified in the image view.  Therefore, don't use
VK_IMAGE_LAYOUT_UNDEFINED when previous subpasses may
have already rendered to the other slices.

Affects: dEQP-VK.pipeline.render_to_image.3d.*

VK-GL-CTS issue: 476
Components: Vulkan

Change-Id: I4faaaf0d849ad89dd68ef643cfe38730221f8f55

7 years agoExclude variable pointers tests with stores to SSBOs in tess shaders
Alexander Galazin [Fri, 30 Jun 2017 11:51:02 +0000 (13:51 +0200)]
Exclude variable pointers tests with stores to SSBOs in tess shaders

VK-GL-CTS issue: 543

Components: Vulkan

Affects:
dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writes*tess*

Change-Id: I7f8f2f34dda2534e6dcc1f2e81e4a497741a4bfd

7 years agoAdd ArrayStride decoration to some pointers.
Ehsan Nasiri [Thu, 29 Jun 2017 19:04:52 +0000 (15:04 -0400)]
Add ArrayStride decoration to some pointers.

OpPtrAccessChain needs ArrayStride information on variable pointers.

VK-GL-CTS issue: 123

Components: Vulkan

Affects: dEQP-VK.spirv_assembly.instruction.*.variable_pointers.*

Change-Id: I04aa67814b39937b8eeb6254e341c117bc1fc956

7 years agoUse transfer queue with vkCmdFillBuffer
Maciej Jesionowski [Tue, 30 May 2017 08:27:34 +0000 (10:27 +0200)]
Use transfer queue with vkCmdFillBuffer

Due to an error in the condition, the transfer-only queue wasn't
selected for the fill buffer write operation.

Also fixed a validation error with barrier used inside a render pass
in read vertex input operation. This should have no effect on behavior.

Affects:

dEQP-VK.synchronization.op.multi_queue.*fill_buffer*
dEQP-VK.synchronization.op.*read_vertex_input*

Components: Vulkan
VK-GL-CTS issue: 481

Change-Id: Ibed24824532c0e35aba61238809f34717f431b6f
(cherry picked from commit 83af72c04b8723a33855fafc38b3f0a28537a124)

7 years agoExclude certain tests not inlcuded in 1.0.2.3
Alexander Galazin [Thu, 29 Jun 2017 19:45:14 +0000 (21:45 +0200)]
Exclude certain tests not inlcuded in 1.0.2.3

- image_clearing.*multiple_layer
- render_to_image mipmap tests and recently added formats
- sync Android and Khronos mustpasses

VK-GL-CTS issue: 542
Components: Vulkan, AOSP

Change-Id: I043680cb93ba7abdfac371f5a3e6f0b578b3af20

7 years agoAccept compiler or link error as passing result
James Helferty [Tue, 13 Jun 2017 21:23:15 +0000 (17:23 -0400)]
Accept compiler or link error as passing result

Accept either a compiler or link error as a correct behavior when
attempting to alias two outputs from a shader.

Also updates the documentation in the header with the actual shader
construct being tested.

VK-GL-CTS issue: 504
Components: OpenGL

Affects:

KHR-GL44.geometry_shader.linking.location_aliasing
KHR-GL45.geometry_shader.linking.location_aliasing
KHR-GLES31.core.geometry_shader.linking.location_aliasing
KHR-GLES32.core.geometry_shader.linking.location_aliasing

Change-Id: Ib786b3e2bd4f8efc94bea082da417e20e7b8619c

7 years agoExclude render pass multisample resolve tests
Alexander Galazin [Wed, 28 Jun 2017 13:29:13 +0000 (15:29 +0200)]
Exclude render pass multisample resolve tests

Components:Vulkan

Affects: dEQP-VK.renderpass.*.multisample_resolve.*

VK-GL-CTS issue: 538

Change-Id: I21271ceacbc28207b1dba7c09871f1f1871bf556

7 years agoUse transfer queue with vkCmdFillBuffer
Maciej Jesionowski [Tue, 30 May 2017 08:27:34 +0000 (10:27 +0200)]
Use transfer queue with vkCmdFillBuffer

Due to an error in the condition, the transfer-only queue wasn't
selected for the fill buffer write operation.

Also fixed a validation error with barrier used inside a render pass
in read vertex input operation. This should have no effect on behavior.

Affects:

dEQP-VK.synchronization.op.multi_queue.*fill_buffer*
dEQP-VK.synchronization.op.*read_vertex_input*

Components: Vulkan
VK-GL-CTS issue: 481

Change-Id: Ibed24824532c0e35aba61238809f34717f431b6f

7 years agoAdd CTS_KHR_no_error test implementation
Adam Czupryna [Mon, 27 Feb 2017 10:01:06 +0000 (11:01 +0100)]
Add CTS_KHR_no_error test implementation

This is CTS_KHR_no_error implementation commit.
CONTEXT_NO_ERROR flag is added into framework.

Affects:
KHR-NoContext.*.no_error.*

Components: Framework, OpenGL

VK-GL-CTS issue: 5

Change-Id: Ie37d37ad974bbf5e8687f56f774c85498847299c

7 years agoAdd new VK_KHR_variable_pointers extension tests
Ehsan Nasiri [Fri, 26 May 2017 19:06:15 +0000 (15:06 -0400)]
Add new VK_KHR_variable_pointers extension tests

These tests do not write to SSBOs, and therefore do not require the
vertexPipelineStoresAndAtomics and fragmentStoresAndAtomics device
features.

VK-GL-CTS issue: 123
Components: Vulkan
Affects: dEQP-VK.spirv_assembly.instruction.*.variable_pointers.*

Change-Id: I9a5f524a3a7ae7f0ddb295d983ba39bb0b4bcfa9

7 years agoAdd tests for SPV_KHR_variable_pointers extension
Ehsan Nasiri [Fri, 31 Mar 2017 20:40:35 +0000 (16:40 -0400)]
Add tests for SPV_KHR_variable_pointers extension

Compute tests and graphics tests are added for the
VK_KHR_variable_pointers
extension.

Components: Vulkan, Framework
VK-GL-CTS issue: 123
New Tests: dEQP-VK.spirv_assembly.instruction.*.variable_pointers.*

Change-Id: If2d01d626428d89a27432e2b1df33778e0b29f3b

7 years agoExclude multisample renderpass input attachment tests
Alexander Galazin [Tue, 27 Jun 2017 07:32:01 +0000 (09:32 +0200)]
Exclude multisample renderpass input attachment tests

VK-GL-CTS issue: 536
Components: Vulkan
Affects: dEQP-VK.renderpass.*.multisample.*

Change-Id: I34c7bc3f92141b92e645ce4f3da4029177b93b24

7 years agoExclude tests for resolving between images of different sizes
Alexander Galazin [Tue, 27 Jun 2017 07:24:20 +0000 (09:24 +0200)]
Exclude tests for resolving between images of different sizes

VK-GL-CTS issue: 534
Components: Vulkan
Affects: dEQP-VK.api.copy_and_blit.*.resolve_image.diff_image_size.*

Change-Id: Id80c74928d29556336a584c6ae85e261db10f935

7 years agoApplying missing changes from 7e5751
Alexander Galazin [Tue, 27 Jun 2017 07:10:41 +0000 (09:10 +0200)]
Applying missing changes from 7e5751

VK-GL-CTS issue: 533
Components: Vulkan
Affects: dEQP-VK.api.external.fence.*

Change-Id: I5578ab58c4839e8b43c6c1a43cd567be40996c12

7 years agoFix build_mustpass.py dir in vulkancts README
David Neto [Thu, 15 Jun 2017 17:40:50 +0000 (13:40 -0400)]
Fix build_mustpass.py dir in vulkancts README

Components: Vulkan

VK-GL-CTS issue: 506

Change-Id: I6f729e39ea025a91763ea2f7ace79fc911776611

7 years agoAdd CTS_EXT_texture_filter_anisotropic tests implementation
Adam Czupryna [Wed, 17 May 2017 07:58:33 +0000 (09:58 +0200)]
Add CTS_EXT_texture_filter_anisotropic tests implementation

This is tests implementation for GL_EXT_texture_filter_anisotropic
extesnion.

affects:

KHR-GL44.texture_filter_anisotropic.*
KHR-GLES3.texture_filter_anisotropic.*

Components: Framework, OpenGL

VK-GL-CTS issue: 387

Change-Id: I1744454f0e148f99d2faad9905ab4d76d1edecd6

7 years agoAllow NV_texture_rectangle_compressed
James Helferty [Wed, 7 Jun 2017 20:32:57 +0000 (16:32 -0400)]
Allow NV_texture_rectangle_compressed

Allows a rectangle texture object to be used with the glCompressed*
functions if NV_texture_rectangle_compressed is available.

VK-GL-CTS issue: 525
Components: OpenGL

Affects:
KHR-GL45.direct_state_access.textures_subimage_errors

Change-Id: I81622508f6bb2e8f2817a6904de30c10a03cef93

7 years agoStop reading from uninitialized memory
James Helferty [Mon, 12 Jun 2017 21:49:29 +0000 (17:49 -0400)]
Stop reading from uninitialized memory

The compute pipeline statistics query test was accessing uninitialized
memory, which was causing an assert to randomly fail depending on what
tests were run beforehand.

Besides removing the access of the uninitialized memory, this change
also initializes the culprit memory in the base class to known invalid
values so that if another subclass is ever created with the same bug,
it will consistently assert.

VK-GL-CTS issue: 496
Components: OpenGL

Affects:

KHR-GL45.pipeline_statistics_query_tests_ARB.functional_compute_shader_invocations

Change-Id: Icc7478c98f617afee2fd53564473492fecd8836e

7 years agoEnsure invalid_value is an invalid value
James Helferty [Mon, 19 Jun 2017 19:38:04 +0000 (15:38 -0400)]
Ensure invalid_value is an invalid value

In order to make sure that the program name we use is an invalid value,
we need to ensure it isn't a shader name, since that would generate an
INVALID_OPERATION error instead of INVALID_VALUE.

VK-GL-CTS issue 515
Frameworks: OpenGL

Affects:
KHR-GL30.transform_feedback.api_errors_test
KHR-GL31.transform_feedback.api_errors_test
KHR-GL32.transform_feedback.api_errors_test
KHR-GL33.transform_feedback.api_errors_test
KHR-GL40.transform_feedback.api_errors_test
KHR-GL41.transform_feedback.api_errors_test
KHR-GL42.transform_feedback.api_errors_test
KHR-GL43.transform_feedback.api_errors_test
KHR-GL44.transform_feedback.api_errors_test
KHR-GL45.transform_feedback.api_errors_test

Change-Id: If365d90aa794f2659bb49f6831a2b1c040935094

7 years agoRewrite DSA texture buffer tests to signal unsupported configurations
Iago Toral Quiroga [Tue, 20 Jun 2017 10:24:40 +0000 (12:24 +0200)]
Rewrite DSA texture buffer tests to signal unsupported configurations

The current implementation has a single test instance that
loops over a collection of types and sizes and produces a
single pass/fail result. Because some of the framebuffer
configurations produced may not be supported by the driver,
the test skips silently such configurations, which is not
desirable.

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

Affects:
KHR-GL45.direct_state_access.textures_buffer

Change-Id: Id160dd91bed4e5e2a66a6e579e9e4893b5ea956a

7 years agoAdd new package for tests with no default context
Piotr Byszewski [Fri, 12 May 2017 13:32:36 +0000 (15:32 +0200)]
Add new package for tests with no default context

Some OpenGL tests require special GL contexts. This change adds package
that doesn't have default render context. Tests executed in it are
responsible of creating their own context.

Components: OpenGL

VK-GL-CTS issue: 351

Change-Id: I1c0957a2430cd85fd2a52262d0e90069b6679570

7 years agoAdd VK_KHR_dedicated_allocation to allowed extensions
Alexander Galazin [Fri, 23 Jun 2017 22:50:32 +0000 (00:50 +0200)]
Add VK_KHR_dedicated_allocation to allowed extensions

Components: Vulkan
VK-GL-CTS issue: 153

Change-Id: Ia4a785bc31c4790d73375f01fbeb34d5936f7c80

7 years agoVK_KHR_dedicated_allocation: Image clears
Boris Zanin [Thu, 18 May 2017 14:49:40 +0000 (16:49 +0200)]
VK_KHR_dedicated_allocation: Image clears

Update tests:
 * dEQP-VK.api.image_clearing.*

Rename tests (add .core subgroup):
 * dEQP-VK.api.image_clearing.core.*

Add tests:
 * dEQP-VK.api.image_clearing.dedicated_allocation.*

Components: Vulkan

VK-GL-CTS issue: 153

Change-Id: Ia7d7703fb6d9818549d80b031e4e8ea2a9ecf509

7 years agoExtend dEQP-VK.api.image_clearing tests to cover layered images
Slawomir Cygan [Mon, 29 May 2017 17:23:01 +0000 (19:23 +0200)]
Extend dEQP-VK.api.image_clearing tests to cover layered images

This change adds new variang of image clearing test cases:
- *_multiple_layers
which use arrayed images and layered clears.

In the new tests variant both image views and clear operations
use layerCount smaller than `remaining` layers and non-zero
baseArrayLayer. It is expected that proper subset of layers
are cleared, while other layers are untouched.

All clear command variants (image, attachment), color formats
and image types are tested.

Affects: dEQP-VK.api.image_clearing

Components: Vulkan

VK-GL-CTS issue: 449

Change-Id: Ifedd393b14880697501df450b22740de76b6cd0c
(cherry picked from commit 1198740eef1b624f481d16302a5d311e512ba16b)

7 years agoVK_KHR_dedicated_allocation: Copies and blits
Boris Zanin [Mon, 15 May 2017 15:15:27 +0000 (17:15 +0200)]
VK_KHR_dedicated_allocation: Copies and blits

Update tests:
 * dEQP-VK.api.copy_and_blit.*

Rename tests (add .core subgroup):
 * dEQP-VK.api.copy_and_blit.core.*

Add tests:
 * dEQP-VK.api.copy_and_blit.dedicated_allocation.*

Components: Vulkan

VK-GL-CTS issue: 153

Change-Id: Ic42d141187a6fc0eade9a93f19e9cd9e821725fb

7 years agoAdd copy image to image and blit image tests with various image layouts. Refactor...
Igor Ostrowski [Mon, 2 Jan 2017 16:41:30 +0000 (17:41 +0100)]
Add copy image to image and blit image tests with various image layouts. Refactor copy and blit tests generation.

Tests took into account only optimal layout cases. Added general and mixed ones.
Structure of all copy and blit tests was too flat. Lowered granularity of test groups.

New tests:
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.*optimal_optimal*
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.*optimal_general*
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.*general_optimal*
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.*general_general*

- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*optimal_optimal*
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*optimal_general*
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*general_optimal*
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*general_general*

Affected tests:
- dEQP-VK.api.copy_and_blit.*

Components: Vulkan

Change-Id: I5724bb7c0a3ccb2e36319a20671761a9b16fe4ed
(cherry picked from commit 78ba8d915b4558376b479833c862c51433cb882e)

7 years agoAdd NEAREST filtered blitting tests
Maciej Jesionowski [Tue, 27 Dec 2016 13:15:58 +0000 (14:15 +0100)]
Add NEAREST filtered blitting tests

This fixes a couple of issues with nearest filtered blitting tests
and adds them back to the mustpass.

- Corrected test case names (esp. for D/S formats)
- Modified common code used by linear cases too (shouldn't have
  an observable effect on tests)
- Used tcuTexLookupVerifier to sample source image with an offset
  that accounts for rounding errors in coordinate calculation
- Enabled nearest cases in mustpass

New tests:
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*_nearest

Modified tests:
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*

Fixes #483, #565

Change-Id: I176c2b50a656268a31f1f35fef1ff90647039727
(cherry picked from commit 396dacd30898c428105bc4f2f72b00240673f3a7)

7 years agoImprove the test generation in the copies and blitting tests
Gabor Abraham [Fri, 18 Nov 2016 10:22:53 +0000 (11:22 +0100)]
Improve the test generation in the copies and blitting tests

The generateBuffer function didn't handle the integer formats well.

Affected tests:
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.*int*
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*int*

Change-Id: I248136606d2535c176432bbc50de45e1e4e55b80
(cherry picked from commit a8efa9926e55631f2279871a07f3dfa51bf12ba5)

7 years agoVK_KHR_dedicated_allocation: Extend renderpass
Boris Zanin [Mon, 29 May 2017 14:41:31 +0000 (16:41 +0200)]
VK_KHR_dedicated_allocation: Extend renderpass

Update tests:
 * dEQP-VK.renderpass.*

Rename tests (add .suballocation subgroup):
 * dEQP-VK.renderpass.suballocation.*

Add tests:
 * dEQP-VK.renderpass.dedicated_allocation.*

Components: Vulkan

VK-GL-CTS issue: 153

Change-Id: Ibe140613592568d4388c4ded6563bc47f43ca552

7 years agoAdd render pass multisample resolve tests
Mika Isojärvi [Tue, 28 Mar 2017 20:45:01 +0000 (13:45 -0700)]
Add render pass multisample resolve tests

- Check that attachment components are resolved consistently
- Check that attachments are resolved consistently
- Check that integer formats always resolve to one of the samples
- Check that empty sample mask doesn't change values
- Check that all possible sample combinations of 1.0 and 0.0 values
  resolve to 0.5 on average.

VK-GL-CTS issues: 96
Components: Vulkan

Change-Id: I18b92ed713175cd935651575f4e48d9fd207ef00
(cherry picked from commit c8c44388f472dcbb6145b520c4a89e5ef02221b3)

7 years agoAdd multisample renderpass input attachment tests
Mika Isojärvi [Tue, 21 Mar 2017 23:12:51 +0000 (16:12 -0700)]
Add multisample renderpass input attachment tests

VK-GL-CTS issues: 96
Components: Vulkan

Change-Id: I9ea87736c82148515da3c2d95301e6302be4257d
(cherry picked from commit 35a2479cfd4c25ae820005254d7c595b0a181599)

7 years agoVK_KHR_dedicated_allocation: Extend render_to_image
Boris Zanin [Mon, 22 May 2017 13:13:23 +0000 (15:13 +0200)]
VK_KHR_dedicated_allocation: Extend render_to_image

Update tests:
 * dEQP-VK.pipeline.render_to_image.*

Rename tests (add .core subgroup):
 * dEQP-VK.pipeline.render_to_image.core.*

Add tests:
 * dEQP-VK.pipeline.render_to_image.dedicated_allocation.*

Components: Vulkan

VK-GL-CTS issue: 153

Change-Id: If4437ea7cf335f083e11d0939894391d34c5b76a

7 years agoAdd render to mipmaps tests
Maciej Jesionowski [Tue, 17 Jan 2017 15:36:33 +0000 (16:36 +0100)]
Add render to mipmaps tests

This test repeatedly draws into the same image using consecutive
mip levels as color and dept/stencil attachments. All mip levels
and array layers are exercised.

Modified tests:

dEQP-VK.pipeline.render_to_image.*

New tests:

dEQP-VK.pipeline.render_to_image.*.mipmap.*

Components: Vulkan
Vulkan CTS issue: 487, 535

Change-Id: I7e4b3c6978d069c0accc377e9ab6e9d05e8e3cc6
(cherry picked from commit 36640c9bfefdb414547c7575ec8adccf2e86263d)

7 years agoAdd max size attachments tests
Maciej Jesionowski [Tue, 17 Jan 2017 15:36:33 +0000 (16:36 +0100)]
Add max size attachments tests

This test creates very big color, and depth/stencil attachments
in all possible dimensions and layers.

Original tests in the affected group were moved to *.small.*
subgroup.

Modified tests:

dEQP-VK.pipeline.render_to_image.*.small.*

New tests:

dEQP-VK.pipeline.render_to_image.*.huge.*

Components: Vulkan
Vulkan CTS issue: 451, 535

Change-Id: I1e3bd1f7a657ff837b830bbada539a1240b1fd04
(cherry picked from commit 9c87bf6cfb1b8f99304b493a6846c15819da432a)

7 years agoVK_KHR_dedicated_allocation: Extend pipeline.image
Boris Zanin [Sun, 21 May 2017 20:21:49 +0000 (22:21 +0200)]
VK_KHR_dedicated_allocation: Extend pipeline.image

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

Rename tests (add .suballocation subgroup):
 * dEQP-VK.pipeline.image.suballocation.*

Add tests:
 * dEQP-VK.pipeline.image.dedicated_allocation.*

Components: Vulkan

VK-GL-CTS issue: 153

Change-Id: I0b25c08b830a44956dd0c26da39124364dbabb89

7 years agoVK_KHR_dedicated_allocation: Memory Mapping tests
Marcin Rogucki [Mon, 12 Jun 2017 10:42:41 +0000 (12:42 +0200)]
VK_KHR_dedicated_allocation: Memory Mapping tests

Update tests:
 * dEQP-VK.memory.mapping.*

Rename tests (added .suballocation subgroups):
 * dEQP-VK.memory.mapping.suballocation.*

Add tests:
 * dEQP-VK.memory.mapping.dedicated_alloc.buffer.*
 * dEQP-VK.memory.mapping.dedicated_alloc.image.*

Components: Vulkan

VK-GL-CTS issue: 153

Change-Id: Ia593c099dc6dcd36c1b45f210c48b8bba9600728

7 years agoVK_KHR_dedicated_allocation: Buffer tests
Marcin Rogucki [Fri, 12 May 2017 09:04:19 +0000 (11:04 +0200)]
VK_KHR_dedicated_allocation: Buffer tests

Update tests:
 * dEQP-VK.api.buffer.create_buffer_*
 * dEQP-VK.api.buffer_view.create.*
 * dEQP-VK.api.buffer_view.access.*
 * dEQP-VK.api.fill_and_update_buffer.*

Rename tests (added .suballocation subgroups):
 * dEQP-VK.api.buffer.suballocation.create_buffer_*
 * dEQP-VK.api.buffer_view.create.suballocation.create_buffer_view_*
 * dEQP-VK.api.buffer_view.access.suballocation.buffer_view_memory_test_complete
 * dEQP-VK.api.buffer_view.access.suballocation.buffer_view_memory_test_partial_offset0
 * dEQP-VK.api.buffer_view.access.suballocation.buffer_view_memory_test_partial_offset1
 * dEQP-VK.api.fill_and_update_buffer.suballocation.*

Add tests:
 * dEQP-VK.api.buffer.dedicated_alloc.create_buffer_*
 * dEQP-VK.api.buffer_view.create.dedicated_alloc.create_buffer_view_*
 * dEQP-VK.api.buffer_view.access.dedicated_alloc.buffer_view_memory_test_complete_*
 * dEQP-VK.api.buffer_view.access.dedicated_alloc.buffer_view_memory_test_partial_offset0_*
 * dEQP-VK.api.buffer_view.access.dedicated_alloc.buffer_view_memory_test_partial_offset1_*
 * dEQP-VK.api.fill_and_update_buffer.dedicated_alloc.*

Components: Vulkan

VK-GL-CTS issue: 153

Change-Id: I6f73cd218f9e59a4939adf804764388edaa63279

7 years agoUse deAlign64 in api.buffer and sparse_resources
Maciej Jesionowski [Tue, 10 Jan 2017 12:15:45 +0000 (13:15 +0100)]
Use deAlign64 in api.buffer and sparse_resources

Change-Id: I087d99db106555a806c6864e67c9af12fb5c67b2
(cherry picked from commit b1d1890c88c14529c145fb9ef20b1046233e4f50)

7 years agoAdd deInt64 alignment functions to delibs
Maciej Jesionowski [Tue, 10 Jan 2017 12:09:14 +0000 (13:09 +0100)]
Add deInt64 alignment functions to delibs

Change-Id: Icf66e7157ae6e972e0d7ef19486fa5b776da1eb0
(cherry picked from commit 412a848d25e4a97b343904f8beace2c3690267c8)

7 years agoDefinitions for VK_KHR_dedicated_allocation
Boris Zanin [Thu, 18 May 2017 06:45:39 +0000 (08:45 +0200)]
Definitions for VK_KHR_dedicated_allocation

Add definitions for VK_KHR_dedicated_allocation.

Components: Vulkan

VK-GL-CTS issue: 153

Change-Id: I062e3eb03edfd4d785d5d93775915541bcd4aa02

7 years agoAdd API tests for VK_KHR_external_fence* extensions
Mika Isojärvi [Mon, 15 May 2017 21:58:26 +0000 (14:58 -0700)]
Add API tests for VK_KHR_external_fence* extensions

New Tests:
dEQP-VK.api.external.fence.*

VK-GL-CTS issues: 119
Components: Vulkan

Change-Id: Ie812cd66b7d7aa5731338b050c23bfe805583ef6

7 years agoTest for VK_KHR_win32_keyed_mutex
Piers Daniell [Wed, 17 May 2017 20:39:05 +0000 (14:39 -0600)]
Test for VK_KHR_win32_keyed_mutex

This test adds coverage for VK_KHR_win32_keyed_mutex. It also depends
on the following extensions:

- VK_KHR_get_physical_device_properties2
- VK_KHR_external_memory_capabilities
- VK_KHR_external_memory
- VK_KHR_external_memory_win32
- VK_KHR_dedicated_allocation
- VK_KHR_get_memory_requirements2

New tests:

dEQP-VK.synchronization.win32_keyed_mutex.*

Components: Vulkan

VK-GL-CTS issue: 358

Change-Id: Ib247f17514f1e64c1fc43918fe033530bb981a05

7 years agoDelete pipeline in dEQP-VK.renderpass.multisample
Gary Sweet [Wed, 7 Jun 2017 10:52:34 +0000 (11:52 +0100)]
Delete pipeline in dEQP-VK.renderpass.multisample

The pipeline objects were not being destroyed at the end of
the test as they weren't held in shared pointers like
everything else is.

Affects:

dEQP-VK.renderpass.multisample.*

Components: Vulkan

VK-GL-CTS issue: 468

Change-Id: I17b8afbb62b2b9c55e89939a02d76b72ed5c09ff

7 years agoAPI tests for the VK_KHR_external_* extensions
Pyry Haulos [Wed, 28 Sep 2016 19:46:55 +0000 (12:46 -0700)]
API tests for the VK_KHR_external_* extensions

New tests:

dEQP-VK.api.external.*
dEQP-VK.synchronization.cross_instance.*

VK-GL-CTS issues: 107, 108, 109
Components: Vulkan

Contains the following commits:
08b8e2b72dd89548f9877a8ed5bba7c04c1d9732
9d154edc6a44aaccd0a913a17d44689cfe472ab2
2977726d2eb00edb145418f196e355671ed53ca5
1d626a0d2d66ef34d3caeecb6e5e2f9c81f5e788
a56c487e346192c74fb17f719aad18a71d667478
c918a652c559028f0f4893962e32d3e52970fd4f

Change-Id: I9b2e838c7e7143996f0dc49dabe48346416716ff

7 years agodefer device creation until after feature checks
Daniel Koch [Wed, 21 Jun 2017 17:14:44 +0000 (13:14 -0400)]
defer device creation until after feature checks

VK-GL-CTS Issue: 523
Component: Vulkan

Affects:
dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.*
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.*

Change-Id: Ife678bf4e70f5d312f9276356bc288f7d31f15f8
(cherry picked from commit 545cb418b912430bce80ae69d06f669114b4211e)

7 years agoFix 16bit_storage out of bounds buffer accesses
Daniel Koch [Wed, 21 Jun 2017 14:21:04 +0000 (10:21 -0400)]
Fix 16bit_storage out of bounds buffer accesses

VK-GL-CTS Issue: 518
Component: Vulkan

Affects:
dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.push_constant_16_to_32.vector_sint
dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.push_constant_16_to_32.vector_uint

Change-Id: I33d3c94388a8eacac78a617ba7711b3688701323
(cherry picked from commit 5bad3cacecc5de4868365cb854f9433c79770c5f)

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Alexander Galazin [Thu, 22 Jun 2017 02:28:17 +0000 (04:28 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: I637adc039c18a8522aea1c8ebdd4756984985285

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.0.2-confidential
Alexander Galazin [Thu, 22 Jun 2017 02:28:13 +0000 (04:28 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.0.2-confidential

Change-Id: I842fde2a18d086da72b78b0b3bded26fd2b2de4b

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2
Alexander Galazin [Thu, 22 Jun 2017 02:28:12 +0000 (04:28 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2

Change-Id: I6400944995d9bcb06801ab0f3ada643ed9d914ed

7 years agoCheck for shaderFloat64 before creating shaders
Alex Walters [Tue, 20 Jun 2017 11:27:11 +0000 (12:27 +0100)]
Check for shaderFloat64 before creating shaders

Shader is using double types for F64 vertex attribute cases without
checking that the shader feature is supported.

The test was eventually making this check, but not until setting up
the vertex attributes themselves. This change also avoid creating some
other resources before determining that the test is unsupported.

Affects:

dEQP-VK.pipeline.vertex_input.single_attribute*64*

Components: Vulkan

VK-GL-CTS issue: 459

Change-Id: I6142af4e1a64aac233d6890285f81db327589800

7 years agoFix 'verification' spell in enhanced_layouts
Andres Gomez [Thu, 2 Mar 2017 13:21:37 +0000 (15:21 +0200)]
Fix 'verification' spell in enhanced_layouts

Corrected the spelling of the TextureTestBase's
getVariableVerification method in gl4cEnhancedLayoutsTests.*, from the
mispelled getVariableVerifcation one.

Affects:

KHR-GL44.enhanced_layouts.*

VK-GL-CTS issue: 514
Components: OpenGL

Change-Id: I407fb1ed46ff6e504ebd6517d4fd04cc34599d34

7 years agoFix regressions from 38cdcf98c372cb8af8
Iago Toral Quiroga [Mon, 19 Jun 2017 09:50:54 +0000 (11:50 +0200)]
Fix regressions from 38cdcf98c372cb8af8

That commit merged together a number of changes
and it seems that it messed up the spir-v for the
opconstantnull and opundef tests.

Components: Vulkan
Vk-GL-CTS issue: 511

Affects:
dEQP-VK.spirv_assembly.instruction.compute.opconstantnull.*
dEQP-VK.spirv_assembly.instruction.compute.opundef.*

Change-Id: I0810dd9d75aeebb993f2f595e20c90fde10cf899

7 years agoAdd test for VK_KHR_get_memory_requirements2
Boris Zanin [Sun, 7 May 2017 12:21:28 +0000 (14:21 +0200)]
Add test for VK_KHR_get_memory_requirements2

Update tests:
 * dEQP-VK.memory.requirements.buffer.*
 * dEQP-VK.memory.requirements.image.*

Rename tests (add .core subgroup):
 * dEQP-VK.memory.requirements.core.buffer.*
 * dEQP-VK.memory.requirements.core.image.*

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

Components: Vulkan

VK-GL-CTS issue: 391

Change-Id: I307bbf361d36d5f277ff70ce3204d67f8eb59871
(cherry picked from commit 140028f310bf6116a2c9063a5565fae6bf5152bb)

7 years agoAdd tests for the VK_KHR_16bit_storage extension
Lei Zhang [Wed, 1 Mar 2017 17:30:20 +0000 (12:30 -0500)]
Add tests for the VK_KHR_16bit_storage extension

* Four capabilities
  * StorageUniform16
  * StorageUniformBufferBlock16
  * StorageInputOutput16
  * StoragePushConstant16
* 16bit -> 32bit and 32bit -> 16bit
* integers and floats
* vectors and matrices of integers and floats

Component: Vulkan

(cherry picked from commit e62c7b595cbf79617555faf46eb9085bb7d11cb1)

Contains following two follow-up patches:
 * d41f0578749db200124a933a0bc6ace35881d02d (check against linea/optimalTilingFeatures)
 * a24bed1ac5b06e6ef87da3b6f9bc103f5cdf463f (allow flusing denormals)
 * ff75accb8c0634ddfa920462d864a58f12a76198 (add missing extensions)

Change-Id: I51f59d9a7d984f5190c8d60752454b963a039c2e

7 years agoAdd tests for VK_KHR_storage_buffer_storage_class
Pyry Haulos [Wed, 3 May 2017 22:08:12 +0000 (15:08 -0700)]
Add tests for VK_KHR_storage_buffer_storage_class

This change extends following groups to cover the new StorageBuffer
decoration:

 * dEQP-VK.glsl.opaque_type_indexing
 * dEQP-VK.spirv_assembly.compute.opatomic

VK-GL-CTS issue: 357
Components: Vulkan

Change-Id: I283a39f4e92f1be6597d843c67debc3ae28c9f22
(cherry picked from commit 9e31538412fb6ce1773e8cfda5b7e5f7fd081e87)

7 years agoImprove GLSL source program support
Pyry Haulos [Thu, 4 May 2017 22:29:08 +0000 (15:29 -0700)]
Improve GLSL source program support

Old GLSL source program support in Vulkan framework was built on top
of glu::ProgramSources. This had two problems:

1) There was no obvious way to extend/annotate sources with SPIR-V
-specific information such as target SPIR-V version.

2) Most of glu::ProgramSources, such as attribute bindings or TF
configuration, was completely ignored.

This change introduces new vk::GlslSource type that replaces
glu::ProgramSources in vk::SourceCollections. vk::GlslSource contains
shader source strings as well as build options (vk::GlslBuildOptions).

vk::GlslBuildOptions doesn't currently contain anything useful but can
be later extended to support selecting target SPIR-V version for
example.

The change is mostly transparent to existing code, except:

 * vkSpirvProgram.hpp was somewhat unnecessarily including
tcuTestLog.hpp and changing that to a forward declaration required
fixing includes in several test code files.

  * vktShaderExecutor.cpp has been extended to allow specifying build
options.

Components: Vulkan

Change-Id: I69a6cd55ea91215585515b9d41860d818cbc97ae
(cherry picked from commit fa7a45c9bcb909be38ffd55549beb6db5115a65b)

7 years agoCherry-pick SPIR-V assembly test improvements
Pyry Haulos [Wed, 14 Jun 2017 18:54:31 +0000 (11:54 -0700)]
Cherry-pick SPIR-V assembly test improvements

These SPIR-V assembly test framework improvements are needed by new SPIR-V
tests.

Contains following commits, sans new tests:

e47e81cda3ab7215d6089f4f5f631fa4f4385e10
ca8cfd0d24bc210c1cfeb3ded0c2c0d2492aa66b
56bd1576eb438e10e8ccb22e17b08354fbf3bac7
56f121e90ff24a88b375db1a74c296d17dd97a74
05e91483c6f2f48b408ed1a638cbb32468ed8dfa
fc1e2f0942477676e92f7fe632ef441a90f570f8
318e6d042b1aaa15327342b39967f0ae97d23347
c35c2901d9d604631326eec11b80b3e6b7b7d55f
0d10dbfa6e176e18f69edcace62f921bb5225168
251a30e3cf94411b7453dd4e05cf24e1d45f579e
4fe79607bfac070a32d9554e3705379073e3672b
8977777244ce058cb79e1cf3b43e528322e8308c
6a51980397447d1f726e71d9126e47f84dc80a6f

Change-Id: Ibedf226d3160365651155327dac50e8e9987a6d4

7 years agoAdd 32 to 16 bit float conversion w.r.t rounding mode
Lei Zhang [Mon, 20 Mar 2017 19:40:54 +0000 (15:40 -0400)]
Add 32 to 16 bit float conversion w.r.t rounding mode

Component: Framework

Change-Id: I9428f0dc725484b8a2f213157100326a69754cd8
(cherry picked from commit 7c0f5bea1da74f70e549e9a735c9d702c9396084)

7 years agoAdd create functions for common Vulkan types.
Mika Isojärvi [Wed, 8 Feb 2017 00:37:51 +0000 (16:37 -0800)]
Add create functions for common Vulkan types.

These functions simplify creating the Vulkan objects by taking the
arguments directly instead of passing through struct. Multiple test
cases already reimplement these functions.

VK-GL-CTS issue: 465
Components: Vulkan

Change-Id: I09f6b0163b5aa2198617230767cd072185afe45c
(cherry picked from commit da03200a87f51bed33b3c3030ecbb6df06ff4f60)

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Alexander Galazin [Sun, 18 Jun 2017 13:49:14 +0000 (15:49 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: I12908a40fc80e7a9b7ee47cbec34a9ed77e7dce4

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2
Alexander Galazin [Sun, 18 Jun 2017 13:43:55 +0000 (15:43 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2

Change-Id: Ibc2a0e06a379886958c3c45f8153b2271251dc1f

7 years agoMerge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
Alexander Galazin [Sun, 18 Jun 2017 12:32:55 +0000 (14:32 +0200)]
Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master

Change-Id: Ibc1539846ed2f43f1f38cb8460cba52b28cbaa0a

7 years agoTouch watchdog before freeing objs in max_concurrent
Pyry Haulos [Wed, 7 Jun 2017 22:58:05 +0000 (15:58 -0700)]
Touch watchdog before freeing objs in max_concurrent

Affects:
dEQP-VK.api.object_management.max_concurrent.*

Components: Vulkan
Google bug: 37515046
VK-GL-CTS issue: 507

Change-Id: I57eb68764a55b5dceeb3e2676b8b1b298c0ff67e
(cherry picked from commit 252fb76fec02af6e2281da3bc9eea4e0d7972f12)
(cherry picked from commit 815781b7774af1aad0e9e2e60cd59ae575a81cf4)

7 years agoAdd missing flush for opaque_type_indexing tests
Gary Sweet [Fri, 9 Jun 2017 07:43:45 +0000 (08:43 +0100)]
Add missing flush for opaque_type_indexing tests

Buffers were being mapped and written, but not flushed
before use.

Affects:

dEQP-VK.glsl.opaque_type_indexing.sampler.*

Components: Vulkan

VK-GL-CTS issue: 487

Change-Id: I9d6b694cebdff1785cbff303f4873628ca902d51

7 years agoReturn back transient attachments tests
Boris Zanin [Tue, 6 Jun 2017 06:42:14 +0000 (08:42 +0200)]
Return back transient attachments tests

Update tests:
 * dEQP-VK.renderpass.attachment.*
 * dEQP-VK.renderpass.attachment_allocation.*

Components: Vulkan

VK-GL-CTS issue 464

Change-Id: I11006ef75ee7fbeb6674d1876a535101edb2a667

7 years agoExtend dEQP-VK.api.image_clearing tests to cover layered images
Slawomir Cygan [Mon, 29 May 2017 17:23:01 +0000 (19:23 +0200)]
Extend dEQP-VK.api.image_clearing tests to cover layered images

This change adds new variang of image clearing test cases:
- *_multiple_layers
which use arrayed images and layered clears.

In the new tests variant both image views and clear operations
use layerCount smaller than `remaining` layers and non-zero
baseArrayLayer. It is expected that proper subset of layers
are cleared, while other layers are untouched.

All clear command variants (image, attachment), color formats
and image types are tested.

Affects: dEQP-VK.api.image_clearing

Components: Vulkan

VK-GL-CTS issue: 449

Change-Id: Ifedd393b14880697501df450b22740de76b6cd0c

7 years agoExplicitly clamp outputs from sint renderpass cases
Gary Sweet [Wed, 7 Jun 2017 09:59:02 +0000 (10:59 +0100)]
Explicitly clamp outputs from sint renderpass cases

dEQP-VK.renderpass.multisample.*sint* tests were expecting
the implementation to implicitly clamp the signed outputs.
This appears to be undefined by the spec, so change the
tests to explicitly clamp prior to output.

Affects:

dEQP-VK.renderpass.multisample.*sint*

Components: Vulkan

VK-GL-CTS issue: 463

Change-Id: I6c7c8f3ed56152a7e52ea0ddf5eafebb9ac8dc09