diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2024-10-29 14:49:26 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-29 14:49:26 +0800 |
| commit | f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21 (patch) | |
| tree | ea1d61342cd29368e19135000ec2948813096205 /tools/gfx-unit-test/get-buffer-resource-handle-test.cpp | |
| parent | a729c15e9dce9f5116a38afc66329ab2ca4cea54 (diff) | |
format
* format
* Minor test fixes
* enable checking cpp format in ci
Diffstat (limited to 'tools/gfx-unit-test/get-buffer-resource-handle-test.cpp')
| -rw-r--r-- | tools/gfx-unit-test/get-buffer-resource-handle-test.cpp | 159 |
1 files changed, 74 insertions, 85 deletions
diff --git a/tools/gfx-unit-test/get-buffer-resource-handle-test.cpp b/tools/gfx-unit-test/get-buffer-resource-handle-test.cpp index 36b6b3cad..a143ac135 100644 --- a/tools/gfx-unit-test/get-buffer-resource-handle-test.cpp +++ b/tools/gfx-unit-test/get-buffer-resource-handle-test.cpp @@ -1,9 +1,8 @@ -#include "tools/unit-test/slang-unit-test.h" - -#include "slang-gfx.h" #include "gfx-test-util.h" -#include "tools/gfx-util/shader-cursor.h" +#include "slang-gfx.h" #include "source/core/slang-basic.h" +#include "tools/gfx-util/shader-cursor.h" +#include "tools/unit-test/slang-unit-test.h" #if SLANG_WINDOWS_FAMILY #include <d3d12.h> @@ -13,97 +12,87 @@ using namespace gfx; namespace gfx_test { - void getBufferResourceHandleTestImpl(IDevice* device, UnitTestContext* context) - { - const int numberCount = 1; - IBufferResource::Desc bufferDesc = {}; - bufferDesc.sizeInBytes = numberCount * sizeof(float); - bufferDesc.format = gfx::Format::Unknown; - bufferDesc.elementSize = sizeof(float); - bufferDesc.allowedStates = ResourceStateSet( - ResourceState::ShaderResource, - ResourceState::UnorderedAccess, - ResourceState::CopyDestination, - ResourceState::CopySource); - bufferDesc.defaultState = ResourceState::UnorderedAccess; - bufferDesc.memoryType = MemoryType::DeviceLocal; +void getBufferResourceHandleTestImpl(IDevice* device, UnitTestContext* context) +{ + const int numberCount = 1; + IBufferResource::Desc bufferDesc = {}; + bufferDesc.sizeInBytes = numberCount * sizeof(float); + bufferDesc.format = gfx::Format::Unknown; + bufferDesc.elementSize = sizeof(float); + bufferDesc.allowedStates = ResourceStateSet( + ResourceState::ShaderResource, + ResourceState::UnorderedAccess, + ResourceState::CopyDestination, + ResourceState::CopySource); + bufferDesc.defaultState = ResourceState::UnorderedAccess; + bufferDesc.memoryType = MemoryType::DeviceLocal; - ComPtr<IBufferResource> buffer; - GFX_CHECK_CALL_ABORT(device->createBufferResource( - bufferDesc, - nullptr, - buffer.writeRef())); + ComPtr<IBufferResource> buffer; + GFX_CHECK_CALL_ABORT(device->createBufferResource(bufferDesc, nullptr, buffer.writeRef())); - InteropHandle handle; - GFX_CHECK_CALL_ABORT(buffer->getNativeResourceHandle(&handle)); - if (device->getDeviceInfo().deviceType == gfx::DeviceType::Vulkan) - { - SLANG_CHECK(handle.handleValue != 0); - SLANG_CHECK(handle.api == InteropHandleAPI::Vulkan); - } + InteropHandle handle; + GFX_CHECK_CALL_ABORT(buffer->getNativeResourceHandle(&handle)); + if (device->getDeviceInfo().deviceType == gfx::DeviceType::Vulkan) + { + SLANG_CHECK(handle.handleValue != 0); + SLANG_CHECK(handle.api == InteropHandleAPI::Vulkan); + } #if SLANG_WINDOWS_FAMILY - else - { - SLANG_CHECK(handle.api == InteropHandleAPI::D3D12); - auto d3d12Handle = (ID3D12Resource*)handle.handleValue; - Slang::ComPtr<IUnknown> testHandle1; - GFX_CHECK_CALL_ABORT(d3d12Handle->QueryInterface<IUnknown>(testHandle1.writeRef())); - Slang::ComPtr<ID3D12Resource> testHandle2; - GFX_CHECK_CALL_ABORT(testHandle1->QueryInterface<ID3D12Resource>(testHandle2.writeRef())); - SLANG_CHECK(d3d12Handle == testHandle2.get()); - } -#endif + else + { + SLANG_CHECK(handle.api == InteropHandleAPI::D3D12); + auto d3d12Handle = (ID3D12Resource*)handle.handleValue; + Slang::ComPtr<IUnknown> testHandle1; + GFX_CHECK_CALL_ABORT(d3d12Handle->QueryInterface<IUnknown>(testHandle1.writeRef())); + Slang::ComPtr<ID3D12Resource> testHandle2; + GFX_CHECK_CALL_ABORT(testHandle1->QueryInterface<ID3D12Resource>(testHandle2.writeRef())); + SLANG_CHECK(d3d12Handle == testHandle2.get()); } +#endif +} - void getBufferResourceHandleTestAPI(UnitTestContext* context, Slang::RenderApiFlag::Enum api) +void getBufferResourceHandleTestAPI(UnitTestContext* context, Slang::RenderApiFlag::Enum api) +{ + if ((api & context->enabledApis) == 0) { - if ((api & context->enabledApis) == 0) - { - SLANG_IGNORE_TEST; - } - Slang::ComPtr<IDevice> device; - IDevice::Desc deviceDesc = {}; - switch (api) - { - case Slang::RenderApiFlag::D3D11: - deviceDesc.deviceType = gfx::DeviceType::DirectX11; - break; - case Slang::RenderApiFlag::D3D12: - deviceDesc.deviceType = gfx::DeviceType::DirectX12; - break; - case Slang::RenderApiFlag::Vulkan: - deviceDesc.deviceType = gfx::DeviceType::Vulkan; - break; - default: - SLANG_IGNORE_TEST; - } - deviceDesc.slang.slangGlobalSession = context->slangGlobalSession; - const char* searchPaths[] = { "", "../../tools/gfx-unit-test", "tools/gfx-unit-test" }; - deviceDesc.slang.searchPathCount = (SlangInt)SLANG_COUNT_OF(searchPaths); - deviceDesc.slang.searchPaths = searchPaths; - auto createDeviceResult = gfxCreateDevice(&deviceDesc, device.writeRef()); - if (SLANG_FAILED(createDeviceResult)) - { - SLANG_IGNORE_TEST; - } - // Ignore this test on swiftshader. Swiftshader seems to have a bug that causes the test - // to crash. - if (Slang::String(device->getDeviceInfo().adapterName).toLower().contains("swiftshader")) - { - SLANG_IGNORE_TEST; - } - - getBufferResourceHandleTestImpl(device, context); + SLANG_IGNORE_TEST; } - - SLANG_UNIT_TEST(getBufferResourceHandleD3D12) + Slang::ComPtr<IDevice> device; + IDevice::Desc deviceDesc = {}; + switch (api) { - return getBufferResourceHandleTestAPI(unitTestContext, Slang::RenderApiFlag::D3D12); + case Slang::RenderApiFlag::D3D11: deviceDesc.deviceType = gfx::DeviceType::DirectX11; break; + case Slang::RenderApiFlag::D3D12: deviceDesc.deviceType = gfx::DeviceType::DirectX12; break; + case Slang::RenderApiFlag::Vulkan: deviceDesc.deviceType = gfx::DeviceType::Vulkan; break; + default: SLANG_IGNORE_TEST; } - - SLANG_UNIT_TEST(getBufferResourceHandleVulkan) + deviceDesc.slang.slangGlobalSession = context->slangGlobalSession; + const char* searchPaths[] = {"", "../../tools/gfx-unit-test", "tools/gfx-unit-test"}; + deviceDesc.slang.searchPathCount = (SlangInt)SLANG_COUNT_OF(searchPaths); + deviceDesc.slang.searchPaths = searchPaths; + auto createDeviceResult = gfxCreateDevice(&deviceDesc, device.writeRef()); + if (SLANG_FAILED(createDeviceResult)) + { + SLANG_IGNORE_TEST; + } + // Ignore this test on swiftshader. Swiftshader seems to have a bug that causes the test + // to crash. + if (Slang::String(device->getDeviceInfo().adapterName).toLower().contains("swiftshader")) { - return getBufferResourceHandleTestAPI(unitTestContext, Slang::RenderApiFlag::Vulkan); + SLANG_IGNORE_TEST; } + getBufferResourceHandleTestImpl(device, context); } + +SLANG_UNIT_TEST(getBufferResourceHandleD3D12) +{ + return getBufferResourceHandleTestAPI(unitTestContext, Slang::RenderApiFlag::D3D12); +} + +SLANG_UNIT_TEST(getBufferResourceHandleVulkan) +{ + return getBufferResourceHandleTestAPI(unitTestContext, Slang::RenderApiFlag::Vulkan); +} + +} // namespace gfx_test |
