1 #ifndef _VKTSYNCHRONIZATIONOPERATIONTESTDATA_HPP 2 #define _VKTSYNCHRONIZATIONOPERATIONTESTDATA_HPP 3 /*------------------------------------------------------------------------ 4 * Vulkan Conformance Tests 5 * ------------------------ 6 * 7 * Copyright (c) 2016 The Khronos Group Inc. 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 * 21 *//*! 22 * \file 23 * \brief Synchronization operation static data 24 *//*--------------------------------------------------------------------*/ 25 26 #include "tcuDefs.hpp" 27 #include "vkDefs.hpp" 28 #include "tcuVector.hpp" 29 #include "vktSynchronizationOperation.hpp" 30 31 namespace vkt 32 { 33 namespace synchronization 34 { 35 36 static const ResourceDescription s_resources[] = 37 { 38 { RESOURCE_TYPE_BUFFER, tcu::IVec4( 0x4000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, // 16 KiB (min max UBO range) 39 { RESOURCE_TYPE_BUFFER, tcu::IVec4(0x40000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, // 256 KiB 40 41 { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 0, 0, 0), vk::VK_IMAGE_TYPE_1D, vk::VK_FORMAT_R32_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, 42 43 { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT }, 44 { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, 45 { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8G8B8A8_UNORM, vk::VK_IMAGE_ASPECT_COLOR_BIT }, 46 { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16G16B16A16_UINT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, 47 { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R32G32B32A32_SFLOAT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, 48 49 { RESOURCE_TYPE_IMAGE, tcu::IVec4(64, 64, 8, 0), vk::VK_IMAGE_TYPE_3D, vk::VK_FORMAT_R32_SFLOAT, vk::VK_IMAGE_ASPECT_COLOR_BIT }, 50 51 // \note Mixed depth/stencil formats add complexity in image<->buffer transfers (packing), so we just avoid them here 52 { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_D16_UNORM, vk::VK_IMAGE_ASPECT_DEPTH_BIT }, 53 { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_D32_SFLOAT, vk::VK_IMAGE_ASPECT_DEPTH_BIT }, 54 { RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_S8_UINT, vk::VK_IMAGE_ASPECT_STENCIL_BIT }, 55 56 // \note Special resources, when test case isn't strictly a copy and comparison of some data 57 { RESOURCE_TYPE_INDIRECT_BUFFER_DRAW, tcu::IVec4(sizeof(vk::VkDrawIndirectCommand), 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, 58 { RESOURCE_TYPE_INDIRECT_BUFFER_DRAW_INDEXED, tcu::IVec4(sizeof(vk::VkDrawIndexedIndirectCommand), 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, 59 { RESOURCE_TYPE_INDIRECT_BUFFER_DISPATCH, tcu::IVec4(sizeof(vk::VkDispatchIndirectCommand), 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFINED, (vk::VkImageAspectFlags)0 }, 60 }; 61 62 static const OperationName s_writeOps[] = 63 { 64 OPERATION_NAME_WRITE_FILL_BUFFER, 65 OPERATION_NAME_WRITE_UPDATE_BUFFER, 66 OPERATION_NAME_WRITE_COPY_BUFFER, 67 OPERATION_NAME_WRITE_COPY_BUFFER_TO_IMAGE, 68 OPERATION_NAME_WRITE_COPY_IMAGE_TO_BUFFER, 69 OPERATION_NAME_WRITE_COPY_IMAGE, 70 OPERATION_NAME_WRITE_BLIT_IMAGE, 71 OPERATION_NAME_WRITE_SSBO_VERTEX, 72 OPERATION_NAME_WRITE_SSBO_TESSELLATION_CONTROL, 73 OPERATION_NAME_WRITE_SSBO_TESSELLATION_EVALUATION, 74 OPERATION_NAME_WRITE_SSBO_GEOMETRY, 75 OPERATION_NAME_WRITE_SSBO_FRAGMENT, 76 OPERATION_NAME_WRITE_SSBO_COMPUTE, 77 OPERATION_NAME_WRITE_SSBO_COMPUTE_INDIRECT, 78 OPERATION_NAME_WRITE_IMAGE_VERTEX, 79 OPERATION_NAME_WRITE_IMAGE_TESSELLATION_CONTROL, 80 OPERATION_NAME_WRITE_IMAGE_TESSELLATION_EVALUATION, 81 OPERATION_NAME_WRITE_IMAGE_GEOMETRY, 82 OPERATION_NAME_WRITE_IMAGE_FRAGMENT, 83 OPERATION_NAME_WRITE_IMAGE_COMPUTE, 84 OPERATION_NAME_WRITE_IMAGE_COMPUTE_INDIRECT, 85 OPERATION_NAME_WRITE_CLEAR_COLOR_IMAGE, 86 OPERATION_NAME_WRITE_CLEAR_DEPTH_STENCIL_IMAGE, 87 OPERATION_NAME_WRITE_DRAW, 88 OPERATION_NAME_WRITE_DRAW_INDEXED, 89 OPERATION_NAME_WRITE_DRAW_INDIRECT, 90 OPERATION_NAME_WRITE_DRAW_INDEXED_INDIRECT, 91 OPERATION_NAME_WRITE_CLEAR_ATTACHMENTS, 92 OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW, 93 OPERATION_NAME_WRITE_INDIRECT_BUFFER_DRAW_INDEXED, 94 OPERATION_NAME_WRITE_INDIRECT_BUFFER_DISPATCH, 95 }; 96 97 static const OperationName s_readOps[] = 98 { 99 OPERATION_NAME_READ_COPY_BUFFER, 100 OPERATION_NAME_READ_COPY_BUFFER_TO_IMAGE, 101 OPERATION_NAME_READ_COPY_IMAGE_TO_BUFFER, 102 OPERATION_NAME_READ_COPY_IMAGE, 103 OPERATION_NAME_READ_BLIT_IMAGE, 104 OPERATION_NAME_READ_UBO_VERTEX, 105 OPERATION_NAME_READ_UBO_TESSELLATION_CONTROL, 106 OPERATION_NAME_READ_UBO_TESSELLATION_EVALUATION, 107 OPERATION_NAME_READ_UBO_GEOMETRY, 108 OPERATION_NAME_READ_UBO_FRAGMENT, 109 OPERATION_NAME_READ_UBO_COMPUTE, 110 OPERATION_NAME_READ_UBO_COMPUTE_INDIRECT, 111 OPERATION_NAME_READ_SSBO_VERTEX, 112 OPERATION_NAME_READ_SSBO_TESSELLATION_CONTROL, 113 OPERATION_NAME_READ_SSBO_TESSELLATION_EVALUATION, 114 OPERATION_NAME_READ_SSBO_GEOMETRY, 115 OPERATION_NAME_READ_SSBO_FRAGMENT, 116 OPERATION_NAME_READ_SSBO_COMPUTE, 117 OPERATION_NAME_READ_SSBO_COMPUTE_INDIRECT, 118 OPERATION_NAME_READ_IMAGE_VERTEX, 119 OPERATION_NAME_READ_IMAGE_TESSELLATION_CONTROL, 120 OPERATION_NAME_READ_IMAGE_TESSELLATION_EVALUATION, 121 OPERATION_NAME_READ_IMAGE_GEOMETRY, 122 OPERATION_NAME_READ_IMAGE_FRAGMENT, 123 OPERATION_NAME_READ_IMAGE_COMPUTE, 124 OPERATION_NAME_READ_IMAGE_COMPUTE_INDIRECT, 125 OPERATION_NAME_READ_INDIRECT_BUFFER_DRAW, 126 OPERATION_NAME_READ_INDIRECT_BUFFER_DRAW_INDEXED, 127 OPERATION_NAME_READ_INDIRECT_BUFFER_DISPATCH, 128 OPERATION_NAME_READ_VERTEX_INPUT, 129 }; 130 131 } // synchronization 132 } // vkt 133 134 #endif // _VKTSYNCHRONIZATIONOPERATIONTESTDATA_HPP 135