| 6768 | } |
| 6769 | |
| 6770 | void NegativeDebugPrintf::CoopMat2CallbackTest(const char* shader_source, const char* message) { |
| 6771 | AddRequiredExtensions(VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME); |
| 6772 | AddRequiredExtensions(VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME); |
| 6773 | AddRequiredExtensions(VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME); |
| 6774 | AddRequiredFeature(vkt::Feature::cooperativeMatrix); |
| 6775 | AddRequiredFeature(vkt::Feature::shaderFloat16); |
| 6776 | AddRequiredFeature(vkt::Feature::vulkanMemoryModel); |
| 6777 | AddRequiredFeature(vkt::Feature::storageBuffer16BitAccess); |
| 6778 | AddRequiredFeature(vkt::Feature::bufferDeviceAddress); |
| 6779 | SetTargetApiVersion(VK_API_VERSION_1_3); |
| 6780 | RETURN_IF_SKIP(InitDebugPrintfFramework()); |
| 6781 | RETURN_IF_SKIP(InitState()); |
| 6782 | |
| 6783 | CreateComputePipelineHelper pipe(*this); |
| 6784 | pipe.dsl_bindings_[0] = {0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, VK_SHADER_STAGE_ALL, nullptr}; |
| 6785 | pipe.cs_ = VkShaderObj(*m_device, shader_source, VK_SHADER_STAGE_COMPUTE_BIT, SPV_ENV_VULKAN_1_3); |
| 6786 | pipe.CreateComputePipeline(); |
| 6787 | |
| 6788 | vkt::Buffer buffer(*m_device, 256 * 256 * 2, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, kHostVisibleMemProps); |
| 6789 | pipe.descriptor_set_.WriteDescriptorBufferInfo(0, buffer, 0, VK_WHOLE_SIZE, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER); |
| 6790 | pipe.descriptor_set_.UpdateDescriptorSets(); |
| 6791 | |
| 6792 | m_command_buffer.Begin(); |
| 6793 | vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe); |
| 6794 | vk::CmdBindDescriptorSets(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipe.pipeline_layout_, 0, 1, |
| 6795 | &pipe.descriptor_set_.set_, 0, nullptr); |
| 6796 | vk::CmdDispatch(m_command_buffer, 1, 1, 1); |
| 6797 | m_command_buffer.End(); |
| 6798 | |
| 6799 | m_errorMonitor->SetDesiredInfo(message); |
| 6800 | m_default_queue->SubmitAndWait(m_command_buffer); |
| 6801 | m_errorMonitor->VerifyFound(); |
| 6802 | } |
| 6803 | |
| 6804 | TEST_F(NegativeDebugPrintf, CoopMat2PerElementOp) { |
| 6805 | TEST_DESCRIPTION("debugPrintfEXT inside a coopMatPerElementNV callback function"); |
nothing calls this directly
no test coverage detected