Lines Matching defs:context

156 Move<VkRenderPass> makeRenderPass (Context& context, VkFormat format)
222 return createRenderPass(context.getDeviceInterface(), context.getDevice(), &renderPassCreateInfo);
523 Move<VkPipeline> makeGraphicsPipeline (Context& context,
585 return makeGraphicsPipeline(context.getDeviceInterface(), // const DeviceInterface& vk
586 context.getDevice(), // const VkDevice device
613 Move<VkCommandBuffer> makeCommandBuffer (Context& context, const VkCommandPool commandPool)
623 return allocateCommandBuffer(context.getDeviceInterface(),
624 context.getDevice(), &bufferAllocateParams);
677 explicit Buffer (Context& context, VkDeviceSize sizeInBytes, VkBufferUsageFlags usage)
682 const DeviceInterface& vkd = context.getDeviceInterface();
683 const VkDevice device = context.getDevice();
700 m_allocation = context.getDefaultAllocator().allocate(req, MemoryRequirement::HostVisible);
736 explicit Image (Context& context, deUint32 width, deUint32 height, VkFormat format, VkImageUsageFlags usage = VK_IMAGE_USAGE_STORAGE_BIT)
739 const DeviceInterface& vk = context.getDeviceInterface();
740 const VkDevice device = context.getDevice();
741 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
804 m_allocation = context.getDefaultAllocator().allocate(req, MemoryRequirement::Any);
826 const Unique<VkCommandBuffer> cmdBuffer (makeCommandBuffer(context, *cmdPool));
837 submitCommandsAndWait(vk, device, context.getUniversalQueue(), *cmdBuffer);
936 deUint32 vkt::subgroups::getSubgroupSize (Context& context)
938 return context.getSubgroupProperties().subgroupSize;
1746 bool vkt::subgroups::isSubgroupSupported (Context& context)
1748 return context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
1751 bool vkt::subgroups::areSubgroupOperationsSupportedForStage (Context& context, const VkShaderStageFlags stage)
1753 return (stage & (context.getSubgroupProperties().supportedStages)) ? true : false;
1756 bool vkt::subgroups::isSubgroupFeatureSupportedForDevice (Context& context, VkSubgroupFeatureFlagBits bit)
1758 return (bit & (context.getSubgroupProperties().supportedOperations)) ? true : false;
1761 bool vkt::subgroups::areQuadOperationsSupportedForStages (Context& context, const VkShaderStageFlags stages)
1764 if (!isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_QUAD_BIT))
1767 if (context.getSubgroupProperties().quadOperationsInAllStages == VK_TRUE)
1776 bool vkt::subgroups::isFragmentSSBOSupportedForDevice (Context& context)
1778 return context.getDeviceFeatures().fragmentStoresAndAtomics ? true : false;
1781 bool vkt::subgroups::isVertexSSBOSupportedForDevice (Context& context)
1783 return context.getDeviceFeatures().vertexPipelineStoresAndAtomics ? true : false;
1786 bool vkt::subgroups::isInt64SupportedForDevice (Context& context)
1788 return context.getDeviceFeatures().shaderInt64 ? true : false;
1791 bool vkt::subgroups::isTessellationAndGeometryPointSizeSupported (Context& context)
1793 return context.getDeviceFeatures().shaderTessellationAndGeometryPointSize ? true : false;
1796 bool vkt::subgroups::is16BitUBOStorageSupported (Context& context)
1798 return context.get16BitStorageFeatures().uniformAndStorageBuffer16BitAccess ? true : false;
1801 bool vkt::subgroups::is8BitUBOStorageSupported (Context& context)
1803 return context.get8BitStorageFeatures().uniformAndStorageBuffer8BitAccess ? true : false;
1806 bool vkt::subgroups::isFormatSupportedForDevice (Context& context, vk::VkFormat format)
1808 const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& subgroupExtendedTypesFeatures = context.getShaderSubgroupExtendedTypesFeatures();
1809 const VkPhysicalDeviceShaderFloat16Int8Features& float16Int8Features = context.getShaderFloat16Int8Features();
1810 const VkPhysicalDevice16BitStorageFeatures& storage16bit = context.get16BitStorageFeatures();
1811 const VkPhysicalDevice8BitStorageFeatures& storage8bit = context.get8BitStorageFeatures();
1812 const VkPhysicalDeviceFeatures& features = context.getDeviceFeatures();
1822 if (context.isDeviceFunctionalitySupported("VK_KHR_shader_subgroup_extended_types") &&
1823 context.isDeviceFunctionalitySupported("VK_KHR_shader_float16_int8"))
1829 if ( context.isDeviceFunctionalitySupported("VK_KHR_16bit_storage") )
1832 if (context.isDeviceFunctionalitySupported("VK_KHR_8bit_storage"))
1880 bool vkt::subgroups::isSubgroupBroadcastDynamicIdSupported (Context& context)
1882 return context.contextSupports(vk::ApiVersion(0, 1, 2, 0)) &&
1883 vk::getPhysicalDeviceVulkan12Features(context.getInstanceInterface(), context.getPhysicalDevice()).subgroupBroadcastDynamicId;
2474 void initializeMemory (Context& context, const Allocation& alloc, const subgroups::SSBOData& data)
2481 de::Random rnd(context.getTestContext().getCommandLine().getBaseSeed());
2623 flushAlloc(context.getDeviceInterface(), context.getDevice(), alloc);
2647 tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTest (Context& context,
2655 return makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult, shaderStage, 0u, 0u);
2658 tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize (Context& context,
2668 const DeviceInterface& vk = context.getDeviceInterface();
2669 const VkDevice device = context.getDevice();
2677 const Unique<VkShaderModule> vertexShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("vert"), 0u));
2678 const Unique<VkShaderModule> teCtrlShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("tesc"), 0u));
2679 const Unique<VkShaderModule> teEvalShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("tese"), 0u));
2680 const Unique<VkShaderModule> fragmentShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("fragment"), 0u));
2681 const Unique<VkRenderPass> renderPass (makeRenderPass(context, format));
2700 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Image(context, static_cast<deUint32>(extraData[i].numElements), 1u, extraData[i].format));
2706 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Buffer(context, size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT));
2709 initializeMemory(context, alloc, extraData[i]);
2725 const Unique<VkPipeline> pipeline (makeGraphicsPipeline(context, *pipelineLayout,
2770 const VkQueue queue = context.getUniversalQueue();
2771 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
2773 const deUint32 subgroupSize = getSubgroupSize(context);
2774 const Unique<VkCommandBuffer> cmdBuffer (makeCommandBuffer(context, *cmdPool));
2776 Buffer vertexBuffer (context, vertexBufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
2779 Image discardableImage (context, maxWidth, 1u, format, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
2802 Buffer imageBufferResult (context, imageResultSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
2836 context.resetCommandPoolForVKSC(device, *cmdPool);
2853 context.getTestContext().getLog()
2889 tcu::TestStatus vkt::subgroups::makeGeometryFrameBufferTest (Context& context,
2896 return makeGeometryFrameBufferTestRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult, 0u, 0u);
2899 tcu::TestStatus vkt::subgroups::makeGeometryFrameBufferTestRequiredSubgroupSize (Context& context,
2908 const DeviceInterface& vk = context.getDeviceInterface();
2909 const VkDevice device = context.getDevice();
2917 const Unique<VkShaderModule> vertexShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("vert"), 0u));
2918 const Unique<VkShaderModule> geometryShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("geometry"), 0u));
2919 const Unique<VkShaderModule> fragmentShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("fragment"), 0u));
2920 const Unique<VkRenderPass> renderPass (makeRenderPass(context, format));
2939 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Image(context, static_cast<deUint32>(extraData[i].numElements), 1u, extraData[i].format));
2945 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Buffer(context, size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT));
2948 initializeMemory(context, alloc, extraData[i]);
2960 const Unique<VkPipeline> pipeline (makeGraphicsPipeline(context, *pipelineLayout,
3003 const VkQueue queue = context.getUniversalQueue();
3004 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3006 const deUint32 subgroupSize = getSubgroupSize(context);
3007 const Unique<VkCommandBuffer> cmdBuffer (makeCommandBuffer(context, *cmdPool));
3009 Buffer vertexBuffer (context, vertexBufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
3012 Image discardableImage (context, maxWidth, 1u, format, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
3034 Buffer imageBufferResult (context, imageResultSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
3044 initializeMemory(context, alloc, extraData[ndx]);
3075 context.resetCommandPoolForVKSC(device, *cmdPool);
3092 context.getTestContext().getLog()
3102 vk::VkShaderStageFlags vkt::subgroups::getPossibleGraphicsSubgroupStages (Context& context, const vk::VkShaderStageFlags testedStages)
3104 const VkPhysicalDeviceSubgroupProperties& subgroupProperties = context.getSubgroupProperties();
3109 if (VK_SHADER_STAGE_FRAGMENT_BIT != stages && !subgroups::isVertexSSBOSupportedForDevice(context))
3123 tcu::TestStatus vkt::subgroups::allStages (Context& context,
3131 return vkt::subgroups::allStagesRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult, shaderStage,
3135 tcu::TestStatus vkt::subgroups::allStagesRequiredSubgroupSize (Context& context,
3149 const DeviceInterface& vk = context.getDeviceInterface();
3150 const VkDevice device = context.getDevice();
3196 vertexShaderModule = createShaderModule(vk, device, context.getBinaryCollection().get(vert), 0u);
3199 teCtrlShaderModule = createShaderModule(vk, device, context.getBinaryCollection().get(tesc), 0u);
3200 teEvalShaderModule = createShaderModule(vk, device, context.getBinaryCollection().get(tese), 0u);
3207 geometryShaderModule = createShaderModule(vk, device, context.getBinaryCollection().get("geometry_lines"), 0u);
3212 geometryShaderModule = createShaderModule(vk, device, context.getBinaryCollection().get("geometry_points"), 0u);
3216 fragmentShaderModule = createShaderModule(vk, device, context.getBinaryCollection().get("fragment"), 0u);
3227 inputBuffers[ndx] = de::SharedPtr<BufferOrImage>(new Buffer(context, size, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT));
3237 inputBuffers[ndx] = de::SharedPtr<BufferOrImage>(new Image(context, static_cast<deUint32>(extraDatas[datasNdx].numElements), 1, extraDatas[datasNdx].format));
3243 inputBuffers[ndx] = de::SharedPtr<BufferOrImage>(new Buffer(context, size, usage));
3247 initializeMemory(context, alloc, extraDatas[datasNdx]);
3258 const Unique<VkRenderPass> renderPass(makeRenderPass(context, format));
3259 const Unique<VkPipeline> pipeline(makeGraphicsPipeline(context, *pipelineLayout,
3319 const VkQueue queue = context.getUniversalQueue();
3320 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3322 const deUint32 subgroupSize = getSubgroupSize(context);
3323 const Unique<VkCommandBuffer> cmdBuffer (makeCommandBuffer(context, *cmdPool));
3326 Image resultImage (context, maxWidth, 1, format, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
3331 Buffer imageBufferResult (context, imageResultSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
3352 initializeMemory(context, alloc, extraDatas[ndx - stagesCount]);
3442 context.resetCommandPoolForVKSC(device, *cmdPool);
3449 context.getTestContext().getLog()
3460 tcu::TestStatus vkt::subgroups::makeVertexFrameBufferTest (Context& context,
3467 return makeVertexFrameBufferTestRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult, 0u, 0u);
3470 tcu::TestStatus vkt::subgroups::makeVertexFrameBufferTestRequiredSubgroupSize (Context& context,
3479 const DeviceInterface& vk = context.getDeviceInterface();
3480 const VkDevice device = context.getDevice();
3481 const VkQueue queue = context.getUniversalQueue();
3483 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3486 const Unique<VkShaderModule> vertexShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("vert"), 0u));
3487 const Unique<VkShaderModule> fragmentShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("fragment"), 0u));
3488 const Unique<VkRenderPass> renderPass (makeRenderPass(context, format));
3507 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Image(context, static_cast<deUint32>(extraData[i].numElements), 1u, extraData[i].format));
3513 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Buffer(context, size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT));
3516 initializeMemory(context, alloc, extraData[i]);
3527 const Unique<VkPipeline> pipeline (makeGraphicsPipeline(context, *pipelineLayout,
3554 initializeMemory(context, alloc, extraData[ndx]);
3584 const deUint32 subgroupSize = getSubgroupSize(context);
3586 const Unique<VkCommandBuffer> cmdBuffer (makeCommandBuffer(context, *cmdPool));
3589 Buffer vertexBuffer (context, vertexBufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
3594 Image discardableImage (context, maxWidth, 1u, format, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
3616 Buffer imageBufferResult (context, imageResultSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
3626 initializeMemory(context, alloc, extraData[ndx]);
3657 context.resetCommandPoolForVKSC(device, *cmdPool);
3674 context.getTestContext().getLog()
3684 tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTest (Context& context,
3691 return makeFragmentFrameBufferTestRequiredSubgroupSize(context, format, extraDatas, extraDatasCount, internalData, checkResult, 0u, 0u);
3694 tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTestRequiredSubgroupSize (Context& context,
3703 const DeviceInterface& vk = context.getDeviceInterface();
3704 const VkDevice device = context.getDevice();
3705 const VkQueue queue = context.getUniversalQueue();
3706 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
3707 const Unique<VkShaderModule> vertexShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("vert"), 0u));
3708 const Unique<VkShaderModule> fragmentShaderModule (createShaderModule(vk, device, context.getBinaryCollection().get("fragment"), 0u));
3715 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Image(context, static_cast<deUint32>(extraDatas[i].numElements), 1, extraDatas[i].format));
3723 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Buffer(context, size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT));
3728 initializeMemory(context, alloc, extraDatas[i]);
3740 const Unique<VkRenderPass> renderPass(makeRenderPass(context, format));
3742 const Unique<VkPipeline> pipeline(makeGraphicsPipeline(context,
3804 const deUint32 subgroupSize = getSubgroupSize(context);
3805 const Unique<VkCommandBuffer> cmdBuffer (makeCommandBuffer(context, *cmdPool));
3820 initializeMemory(context, alloc, extraDatas[i]);
3825 Image resultImage (context, width, height, format, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
3826 Buffer resultBuffer (context, resultImageSizeInBytes, VK_IMAGE_USAGE_TRANSFER_DST_BIT);
3868 context.resetCommandPoolForVKSC(device, *cmdPool);
3876 context.getTestContext().getLog()
3886 Move<VkPipeline> makeComputePipeline (Context& context,
3944 return createComputePipeline(context.getDeviceInterface(), context.getDevice(), DE_NULL, &pipelineCreateInfo);
3948 Move<VkPipeline> makeMeshPipeline (Context& context,
4015 return makeGraphicsPipeline(context.getDeviceInterface(), context.getDevice(), basePipelineHandle, pipelineLayout, pipelineCreateFlags, shaderStageParams, renderPass, viewports, scissors);
4020 Context& context,
4033 const DeviceInterface& vk = context.getDeviceInterface();
4034 const VkDevice device = context.getDevice();
4035 const VkQueue queue = context.getUniversalQueue();
4036 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
4038 const VkPhysicalDeviceSubgroupSizeControlProperties& subgroupSizeControlProperties = context.getSubgroupSizeControlProperties();
4040 const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& subgroupSizeControlProperties = context.getSubgroupSizeControlPropertiesEXT();
4048 Buffer resultBuffer (context, resultBufferSizeInBytes, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
4079 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Image(context, static_cast<deUint32>(inputs[i].numElements), 1, inputs[i].format));
4085 inputBuffers[i] = de::SharedPtr<BufferOrImage>(new Buffer(context, size, usage));
4090 initializeMemory(context, alloc, inputs[i]);
4109 const auto& binaries = context.getBinaryCollection();
4167 const Unique<VkCommandBuffer> cmdBuffer (makeCommandBuffer(context, *cmdPool));
4179 context.getTestContext().touchWatchdog();
4183 pipelines[0] = de::SharedPtr<Move<VkPipeline>>(new Move<VkPipeline>(makeComputePipeline(context,
4201 pipelines[0] = de::SharedPtr<Move<VkPipeline>>(new Move<VkPipeline>(makeMeshPipeline(context,
4220 context.getTestContext().touchWatchdog();
4228 context.getTestContext().touchWatchdog();
4232 pipelines[index] = de::SharedPtr<Move<VkPipeline>>(new Move<VkPipeline>(makeComputePipeline(context,
4250 pipelines[index] = de::SharedPtr<Move<VkPipeline>>(new Move<VkPipeline>(makeMeshPipeline(context,
4269 context.getTestContext().touchWatchdog();
4335 context.resetCommandPoolForVKSC(device, *cmdPool);
4342 context.getTestContext().getLog()
4352 tcu::TestStatus vkt::subgroups::makeComputeTestRequiredSubgroupSize (Context& context,
4367 context,
4381 tcu::TestStatus vkt::subgroups::makeMeshTestRequiredSubgroupSize (Context& context,
4396 context,
4411 Context& context,
4422 const uint32_t subgroupSize = (isRequiredSubgroupSize ? requiredSubgroupSize : vkt::subgroups::getSubgroupSize(context));
4438 return makeComputeTestRequiredSubgroupSize(context, format, inputs, inputsCount, internalData, checkResult, pipelineShaderStageCreateFlags,
4441 return makeMeshTestRequiredSubgroupSize(context, format, inputs, inputsCount, internalData, checkResult, pipelineShaderStageCreateFlags,
4445 tcu::TestStatus vkt::subgroups::makeComputeTest (Context& context,
4454 return makeComputeOrMeshTest(ComputeLike::COMPUTE, context, format, inputs, inputsCount, internalData, checkResult, requiredSubgroupSize, pipelineShaderStageCreateFlags);
4457 tcu::TestStatus vkt::subgroups::makeMeshTest (Context& context,
4466 return makeComputeOrMeshTest(ComputeLike::MESH, context, format, inputs, inputsCount, internalData, checkResult, requiredSubgroupSize, pipelineShaderStageCreateFlags);
4487 void vkt::subgroups::supportedCheckShader (Context& context, const VkShaderStageFlags shaderStages)
4491 if ((context.getSubgroupProperties().supportedStages & shaderStages) == 0)
4501 context.isDeviceFunctionalitySupported("VK_KHR_portability_subset") &&
4502 !context.getPortabilitySubsetFeatures().tessellationIsolines)
4673 static vectorBufferOrImage makeRayTracingInputBuffers (Context& context,
4686 inputBuffers[stageNdx] = de::SharedPtr<BufferOrImage>(new Buffer(context, inputBufferSize, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT));
4694 inputBuffers[stageNdx] = de::SharedPtr<BufferOrImage>(new Image(context, static_cast<deUint32>(extraDatas[datasNdx].numElements), 1, extraDatas[datasNdx].format));
4700 inputBuffers[stageNdx] = de::SharedPtr<BufferOrImage>(new Buffer(context, size, usage));
4703 initializeMemory(context, inputBuffers[stageNdx]->getAllocation(), extraDatas[datasNdx]);
4709 static Move<VkDescriptorSetLayout> makeRayTracingDescriptorSetLayout (Context& context,
4715 const DeviceInterface& vkd = context.getDeviceInterface();
4716 const VkDevice device = context.getDevice();
4738 static Move<VkDescriptorSetLayout> makeRayTracingDescriptorSetLayoutAS (Context& context)
4740 const DeviceInterface& vkd = context.getDeviceInterface();
4741 const VkDevice device = context.getDevice();
4749 static Move<VkDescriptorPool> makeRayTracingDescriptorPool (Context& context,
4752 const DeviceInterface& vkd = context.getDeviceInterface();
4753 const VkDevice device = context.getDevice();
4771 static Move<VkDescriptorSet> makeRayTracingDescriptorSet (Context& context,
4779 const DeviceInterface& vkd = context.getDeviceInterface();
4780 const VkDevice device = context.getDevice();
4817 static Move<VkDescriptorSet> makeRayTracingDescriptorSetAS (Context& context,
4822 const DeviceInterface& vkd = context.getDeviceInterface();
4823 const VkDevice device = context.getDevice();
4841 static Move<VkPipelineLayout> makeRayTracingPipelineLayout (Context& context,
4845 const DeviceInterface& vkd = context.getDeviceInterface();
4846 const VkDevice device = context.getDevice();
4853 static de::MovePtr<TopLevelAccelerationStructure> createTopAccelerationStructure (Context& context,
4856 const DeviceInterface& vkd = context.getDeviceInterface();
4857 const VkDevice device = context.getDevice();
4858 Allocator& allocator = context.getDefaultAllocator();
4868 static de::SharedPtr<BottomLevelAccelerationStructure> createBottomAccelerationStructure (Context& context)
4870 const DeviceInterface& vkd = context.getDeviceInterface();
4871 const VkDevice device = context.getDevice();
4872 Allocator& allocator = context.getDefaultAllocator();
4883 static de::MovePtr<RayTracingPipeline> makeRayTracingPipeline (Context& context,
4890 const DeviceInterface& vkd = context.getDeviceInterface();
4891 const VkDevice device = context.getDevice();
4892 BinaryCollection& collection = context.getBinaryCollection();
4967 VkShaderStageFlags getPossibleRayTracingSubgroupStages (Context& context, const VkShaderStageFlags testedStages)
4969 const VkPhysicalDeviceSubgroupProperties& subgroupProperties = context.getSubgroupProperties();
4977 tcu::TestStatus allRayTracingStages (Context& context,
4985 return vkt::subgroups::allRayTracingStagesRequiredSubgroupSize(context,
4996 tcu::TestStatus allRayTracingStagesRequiredSubgroupSize (Context& context,
5006 const DeviceInterface& vkd = context.getDeviceInterface();
5007 const VkDevice device = context.getDevice();
5008 const VkQueue queue = context.getUniversalQueue();
5009 const deUint32 queueFamilyIndex = context.getUniversalQueueFamilyIndex();
5010 Allocator& allocator = context.getDefaultAllocator();
5011 const deUint32 subgroupSize = getSubgroupSize(context);
5015 de::SharedPtr<BottomLevelAccelerationStructure> bottomLevelAccelerationStructure = createBottomAccelerationStructure(context);
5016 de::MovePtr<TopLevelAccelerationStructure> topLevelAccelerationStructure = createTopAccelerationStructure(context, bottomLevelAccelerationStructure);
5017 vectorBufferOrImage inputBuffers = makeRayTracingInputBuffers(context, format, extraDatas, extraDatasCount, stagesVector);
5018 const Move<VkDescriptorSetLayout> descriptorSetLayout = makeRayTracingDescriptorSetLayout(context, extraDatas, extraDatasCount, stagesVector, inputBuffers);
5019 const Move<VkDescriptorSetLayout> descriptorSetLayoutAS = makeRayTracingDescriptorSetLayoutAS(context);
5020 const Move<VkPipelineLayout> pipelineLayout = makeRayTracingPipelineLayout(context, *descriptorSetLayout, *descriptorSetLayoutAS);
5022 const de::MovePtr<RayTracingPipeline> rayTracingPipeline = makeRayTracingPipeline(context, shaderStageTested, *pipelineLayout, shaderStageCreateFlags, requiredSubgroupSize, pipeline);
5023 const deUint32 shaderGroupHandleSize = context.getRayTracingPipelineProperties().shaderGroupHandleSize;
5024 const deUint32 shaderGroupBaseAlignment = context.getRayTracingPipelineProperties().shaderGroupBaseAlignment;
5033 const Move<VkDescriptorPool> descriptorPool = makeRayTracingDescriptorPool(context, inputBuffers);
5034 const Move<VkDescriptorSet> descriptorSet = makeRayTracingDescriptorSet(context, *descriptorPool, *descriptorSetLayout, extraDatas, extraDatasCount, stagesVector, inputBuffers);
5035 const Move<VkDescriptorSet> descriptorSetAS = makeRayTracingDescriptorSetAS(context, *descriptorPool, *descriptorSetLayoutAS, topLevelAccelerationStructure);
5037 const Move<VkCommandBuffer> cmdBuffer = makeCommandBuffer(context, *cmdPool);
5051 initializeMemory(context, alloc, extraDatas[ndx - stagesCount]);
5116 context.resetCommandPoolForVKSC(device, *cmdPool);