MCPcopy Create free account
hub / github.com/carbonengine/trinity / TEST_F

Function TEST_F

trinityal/tests/Compute.cpp:14–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12using namespace Tr2RenderContextEnum;
13
14TEST_F( Compute, CanReadCSResult )
15{
16 ENSURE_GPU_OR_SKIP
17 uint8_t vsBytecode[] = {
18#include INCLUDE_SHADER_CODE( OutputVector.cs )
19 };
20
21 auto signature = Tr2ShaderSignatureAL()
22 .Add( Tr2ShaderRegisterAL::UAV_BUFFER, 0 )
23 .Add( Tr2ShaderThreadGroupSizeAL( 1, 1, 1 ) );
24 Tr2ShaderAL cs;
25 ASSERT_HRESULT_SUCCEEDED( cs.Create( COMPUTE_SHADER, vsBytecode, signature, "", *renderContext ) );
26
27 Tr2ShaderAL shaders[] = { cs };
28 Tr2ShaderProgramAL sp;
29 ASSERT_HRESULT_SUCCEEDED( sp.Create( shaders, 1, *renderContext ) );
30
31 Tr2BufferAL output;
32 ASSERT_HRESULT_SUCCEEDED( output.Create( PIXEL_FORMAT_R32G32B32A32_FLOAT, 1, Tr2GpuUsage::UNORDERED_ACCESS, Tr2CpuUsage::READ, nullptr, *renderContext ) );
33
34 Tr2ResourceSetDescriptionAL desc( sp );
35 desc.SetUav( Tr2RenderContextEnum::COMPUTE_SHADER, 0, output );
36 Tr2ResourceSetAL resourceSet;
37 ASSERT_HRESULT_SUCCEEDED( resourceSet.Create( desc, sp, *renderContext ) );
38
39 ASSERT_HRESULT_SUCCEEDED( renderContext->SetResourceSet( resourceSet ) );
40 ASSERT_HRESULT_SUCCEEDED( renderContext->SetShaderProgram( sp ) );
41
42 ASSERT_HRESULT_SUCCEEDED( renderContext->RunComputeShader( 1, 1, 1 ) );
43
44 ASSERT_HRESULT_SUCCEEDED( renderContext->SetResourceSet( Tr2ResourceSetAL() ) );
45
46 const float* data;
47 ASSERT_HRESULT_SUCCEEDED( output.MapForReading( data, *renderContext ) );
48
49 EXPECT_EQ( 1.0f, data[0] );
50 EXPECT_EQ( 2.0f, data[1] );
51 EXPECT_EQ( 3.0f, data[2] );
52 EXPECT_EQ( 4.0f, data[3] );
53 output.UnmapForReading( *renderContext );
54}
55
56
57TEST_F( Compute, DISABLED_CanAddInCS )

Callers

nothing calls this directly

Calls 15

SetUavMethod · 0.80
SetSrvMethod · 0.80
Tr2ResourceSetALClass · 0.50
AddMethod · 0.45
CreateMethod · 0.45
SetResourceSetMethod · 0.45
SetShaderProgramMethod · 0.45
RunComputeShaderMethod · 0.45
MapForReadingMethod · 0.45

Tested by

no test coverage detected