| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886 |
- <?xml version="1.0" encoding="utf-8" standalone="yes"?>
- <ShaderOpSet xmlns="http://schemas.microsoft.com/test/ShaderOp">
- <ShaderOp Name="DerivFine" PS="PS" VS="VS" TopologyType="TRIANGLE">
- <RootSignature>RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), DescriptorTable(SRV(t0,numDescriptors=1))</RootSignature>
- <Resource Name="VBuffer" Dimension="BUFFER" InitialResourceState="COPY_DEST" Init="FromBytes" Topology="TRIANGLELIST">
- { { -1.0f, 1.0f, 0.0f }, { 0.0f, 0.0f } },
- { { 1.0f, 1.0f, 0.0f }, { 1.0f, 0.0f } },
- { { -1.0f, -1.0f, 0.0f }, { 0.0f, 1.0f } },
- { { -1.0f, -1.0f, 0.0f }, { 0.0f, 1.0f } },
- { { 1.0f, 1.0f, 0.0f }, { 1.0f, 0.0f } },
- { { 1.0f, -1.0f, 0.0f }, { 1.0f, 1.0f } }
- </Resource>
- <Resource Name="T0" Dimension="Texture2D" Width="4" Height="4" InitialResourceState="COPY_DEST" Init="FromBytes" Format="R32_FLOAT">
- {.125f, .25f, .5f, 1.0f},
- {2.0f, 4.0f, 16.0f, 32.0f},
- {32.0f, 64.0f, 128.0f, 256.0f},
- {256.0f, 512.0f, 1024.0f, 2048.0f}
- </Resource>
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="64" Height="64" Format="R32G32B32A32_FLOAT" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <RootValues>
- <RootValue HeapName="ResHeap" />
- </RootValues>
- <DescriptorHeap Name="ResHeap" Type="CBV_SRV_UAV">
- <Descriptor Name='T0' Kind='SRV' ResName='T0' />
- </DescriptorHeap>
- <DescriptorHeap Name="RtvHeap" NumDescriptors="1" Type="RTV">
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName="POSITION" Format="R32G32B32_FLOAT" AlignedByteOffset="0" />
- <InputElement SemanticName="TEXCOORD" Format="R32G32_FLOAT" AlignedByteOffset="12" />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget"/>
- </RenderTargets>
- <Shader Name="VS" Target="vs_6_0">
- <![CDATA[
- struct PSInput {
- float4 position : SV_POSITION;
- float2 uv : TEXCOORD;
- };
- PSInput main(float3 position : POSITION, float2 uv : TEXCOORD) {
- PSInput result;
- result.position = float4(position, 1.0);
- result.uv = uv;
- return result;
- }
- ]]>
- </Shader>
- <Shader Name="PS" Target="ps_6_0">
- <![CDATA[
- struct PSInput {
- float4 position : SV_POSITION;
- float2 uv : TEXCOORD;
- };
- Texture2D<float> g_tex : register(t0);
- float4 main(PSInput input) : SV_TARGET {
- int3 offset = int3((input.uv * 64.0) % 4, 0);
- float val = g_tex.Load(offset);
- return float4(ddx_fine(val), ddy_fine(val), ddx_coarse(val), ddy_coarse(val));
- }
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="WriteFloat4" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="Buffer" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" Init="Zero" ReadBack="true" TransitionTo="UNORDERED_ACCESS" />
- <RootValues>
- <RootValue Index="0" ResName="Buffer" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- RWStructuredBuffer<float4> g_buf : register(u0);
- [numthreads(8,8,1)]
- void main(uint GI : SV_GroupIndex) {
- g_buf[GI] = GI;
- };
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="OOB" PS="PS" VS="VS">
- <RootSignature>RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), CBV(b0), DescriptorTable(SRV(t0,numDescriptors=2))</RootSignature>
- <Resource Name="CB0" Dimension="BUFFER" InitialResourceState="COPY_DEST" Init="FromBytes" TransitionTo="VERTEX_AND_CONSTANT_BUFFER">
- 1.0f, 0.0f, 100.0f
- </Resource>
- <Resource Name="T0" Dimension="TEXTURE1D" InitialResourceState="COPY_DEST" Init="FromBytes" Format="R32_FLOAT">
- 1.0f, 0.5f, 1.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f
- </Resource>
- <Resource Name='VBuffer' Dimension='BUFFER' Flags='ALLOW_UNORDERED_ACCESS' InitialResourceState='COPY_DEST' Init='FromBytes'>
- 1.0f 1.0f 0, 1.0f -1.0f 0.0f, -1.0f -1.0f 0,
- -1.0f 1.0f 0, 1.0f 1.0f 0.0f, -1.0f -1.0f 0,
- </Resource>
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="320" Height="200" Format="R8G8B8A8_UNORM" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <RootValues>
- <RootValue ResName="CB0" />
- <RootValue HeapName="ResHeap" />
- </RootValues>
- <DescriptorHeap Name='ResHeap' Type='CBV_SRV_UAV'>
- <Descriptor Name='T0' Kind='SRV' ResName='T0' />
- </DescriptorHeap>
- <DescriptorHeap Name="RtvHeap" NumDescriptors="1" Type="RTV">
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName='POSITION' Format='R32G32B32_FLOAT' AlignedByteOffset='0' />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget" />
- </RenderTargets>
- <Shader Name='VS' Target='vs_6_0' EntryPoint='VSMain' Text="@PS" />
- <Shader Name='PS' Target='ps_6_0' EntryPoint='PSMain'>
- <![CDATA[
- // Resources that are not local scalars (and thus are bound):
- // - array in cbuffer
- // - array in local
- // - array in groupshared
- // - array in signature element
- // - resource access operations:
- // - sampling
- // - loading
- // - storing
- //
- // In all cases, for HLSL, out-of-bound reads yield zero, and
- // out-of-bound writes are no-ops.
- cbuffer C {
- float c_arr;
- float zero_idx;
- float oob_idx;
- };
- Texture1D<float> g_t1d: register(t0);
- struct PSInput {
- float4 position : SV_POSITION;
- };
- PSInput VSMain(float4 position: POSITION) {
- PSInput result;
- result.position = position;
- return result;
- }
- float4 PSMain(PSInput input) : SV_TARGET {
- float x = input.position.x;
- float p0 = g_t1d.Load(zero_idx);
- float p1 = g_t1d.Load(oob_idx);
- float r = 0;
- // every color should be pure red (saturated red channel, zero'ed green channel).
- return float4(p0, p1, 0, 1);
- }
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name='Saturate' PS='PS' VS='VS'>
- <RootSignature>
- RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), DescriptorTable(UAV(u0), CBV(b0))
- </RootSignature>
- <Resource Name='VBuffer' Dimension='BUFFER' Flags='ALLOW_UNORDERED_ACCESS' InitialResourceState='COPY_DEST' Init='FromBytes'>
- 1.0f 1.0f 0, 1.0f -1.0f 0.0f, -1.0f -1.0f 0,
- -1.0f 1.0f 0, 1.0f 1.0f 0.0f, -1.0f -1.0f 0,
- </Resource>
- <Resource Name='CB0' Dimension='BUFFER' Width="256" InitialResourceState='COPY_DEST' Init='FromBytes'>
- -inf, -1.5f, -denorm, -0, 0, denorm, 1.5f, inf, nan
- </Resource>
- <Resource Name="U0" Dimension="BUFFER" Width="1280"
- Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST"
- Init="Zero" ReadBack="true" />
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="64" Height="64" Format="R8G8B8A8_UNORM" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <DescriptorHeap Name='RtvHeap' NumDescriptors='1' Type='RTV'>
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <RootValues>
- <RootValue HeapName="ResHeap" />
- </RootValues>
- <DescriptorHeap Name='ResHeap' Type='CBV_SRV_UAV'>
- <!-- Create a descriptor for a RWStructuredBuffer. The underlying resource must be of type DXGI_FORMAT_UNKNOWN. -->
- <Descriptor Name='U0' Kind='UAV' ResName='U0'
- NumElements="320" StructureByteStride="4" />
- <Descriptor Name='CB0' Kind='CBV' ResName='CB0' />
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName='POSITION' Format='R32G32B32_FLOAT' AlignedByteOffset='0' />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget" />
- </RenderTargets>
- <Shader Name='VS' Target='vs_6_0' EntryPoint='VSMain' Text='@PS'/>
- <Shader Name='PS' Target='ps_6_0' EntryPoint='PSMain'>
- <![CDATA[
- struct c_floats_t {
- float c_neg_inf;
- float c_neg_f;
- float c_neg_denorm;
- float c_neg_zero;
- float c_zero;
- float c_denorm;
- float c_f;
- float c_inf;
- float c_nan;
- };
- RWStructuredBuffer<float> g_buf : register(u0);
- c_floats_t g_cf : register(b0);
- struct PSInput {
- float4 position : SV_POSITION;
- float4 color : COLOR;
- };
- PSInput VSMain(float4 position: POSITION) {
- PSInput result;
- result.position = position;
- result.color = 1;
- return result;
- }
- float4 PSMain(PSInput input) : SV_TARGET {
- uint x = (uint)input.position.x;
- float val;
- switch (x) {
- case 0: val = saturate(g_cf.c_neg_inf); break;
- case 1: val = saturate(g_cf.c_neg_f); break;
- case 2: val = saturate(g_cf.c_neg_denorm); break;
- case 3: val = saturate(g_cf.c_neg_zero); break;
- case 4: val = saturate(g_cf.c_zero); break;
- case 5: val = saturate(g_cf.c_denorm); break;
- case 6: val = saturate(g_cf.c_f); break;
- case 7: val = saturate(g_cf.c_inf); break;
- case 8: val = saturate(g_cf.c_nan); break;
- default: val = x; break;
- }
- g_buf[x] = val;
- float r = 1;
- return float4(r, 0, 0, 1);
- }]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="UnaryFPOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SUnaryFPOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SUnaryFPOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="BinaryFPOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SBinaryFPOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SBinaryFPOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="UnaryIntOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SUnaryIntOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SUnaryIntOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="UnaryUintOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SUnaryUintOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SUnaryUintOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="BinaryIntOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SBinaryIntOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SBinaryIntOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="BinaryUintOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SBinaryUintOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SBinaryUintOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="TertiaryFPOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="STertiaryFPOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="STertiaryFPOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="TertiaryIntOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="STertiaryIntOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="STertiaryIntOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="TertiaryUintOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="STertiaryUintOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="STertiaryUintOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="DotOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SDotOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SDotOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="Dot2AddHalfOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SDot2AddHalfOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SDot2AddHalfOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_4">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="Dot4AddI8PackedOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SDot4AddI8PackedOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SDot4AddI8PackedOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_4">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="Dot4AddU8PackedOp" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SDot4AddU8PackedOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SDot4AddU8PackedOp" />
- </RootValues>
- <Shader Name="CS" Target="cs_6_4">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="Msad4" CS="CS" DispatchX="8" DispatchY="8">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SMsad4" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SMsad4"/>
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="WaveIntrinsicsOp" CS="CS" DispatchX="1" DispatchY="1">
- <RootSignature>RootFlags(0), UAV(u0)</RootSignature>
- <Resource Name="SWaveIntrinsicsOp" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SWaveIntrinsicsOp"/>
- </RootValues>
- <Shader Name="CS" Target="cs_6_0">
- <![CDATA[
- void main(uint GI : SV_GroupIndex) {};
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="Triangle" PS="PS" VS="VS">
- <RootSignature>RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT)</RootSignature>
- <Resource Name="VBuffer" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" Init="FromBytes">
- { { 0.0f, 0.25f , 0.0f }, { 1.0f, 0.0f, 0.0f, 1.0f } },
- { { 0.25f, -0.25f , 0.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } },
- { { -0.25f, -0.25f , 0.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } }
- </Resource>
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="320" Height="200" Format="R8G8B8A8_UNORM" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <DescriptorHeap Name="RtvHeap" NumDescriptors="1" Type="RTV">
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName="POSITION" Format="R32G32B32_FLOAT" AlignedByteOffset="0" />
- <InputElement SemanticName="COLOR" Format="R32G32B32A32_FLOAT" AlignedByteOffset="12" />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget" />
- </RenderTargets>
- <Shader Name="VS" Target="vs_6_0">
- <![CDATA[
- struct PSInput {
- float4 position : SV_POSITION;
- float4 color : COLOR;
- };
- PSInput main(float4 position : POSITION, float4 color : COLOR) {
- PSInput result;
- float ratio = 320.0 / 200.0;
- result.position = position;
- result.position.y *= ratio;
- result.color = color;
- return result;
- }
- ]]>
- </Shader>
- <Shader Name="PS" Target="ps_6_0">
- <![CDATA[
- struct PSInput {
- float4 position : SV_POSITION;
- float4 color : COLOR;
- };
- float4 main(PSInput input) : SV_TARGET {
- return 1;
- }
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="TriangleHalf" PS="PS" VS="VS">
- <RootSignature>RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT)</RootSignature>
- <Resource Name="VBuffer" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" Init="FromBytes">
- { { 0.0h, 0.25h , 0.0h, 1.0h }, { 1.0h, 1.0h, 1.0h, 1.0h } },
- { { 0.25h, -0.25h , 0.0h, 1.0h }, { 1.0h, 1.0h, 1.0h, 1.0h } },
- { { -0.25h, -0.25h , 0.0h, 1.0h }, { 1.0h, 1.0h, 1.0h, 1.0h } }
- </Resource>
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="320" Height="200" Format="R8G8B8A8_UNORM" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <DescriptorHeap Name="RtvHeap" NumDescriptors="1" Type="RTV">
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName="POSITION" Format="R16G16B16A16_FLOAT" AlignedByteOffset="0" />
- <InputElement SemanticName="COLOR" Format="R16G16B16A16_FLOAT" AlignedByteOffset="8" />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget" />
- </RenderTargets>
- <Shader Name="VS" Target="vs_6_2" Arguments="/enable-16bit-types">
- <![CDATA[
- struct PSInput {
- half4 position : SV_POSITION;
- half4 color : COLOR;
- };
- PSInput main(half4 position : POSITION, half4 color : COLOR) {
- PSInput result;
- float ratio = 320.0 / 200.0;
- result.position = position;
- result.position.y *= ratio;
- result.color = color;
- return result;
- }
- ]]>
- </Shader>
- <Shader Name="PS" Target="ps_6_2" Arguments="/enable-16bit-types">
- <![CDATA[
- struct PSInput {
- half4 position : SV_POSITION;
- half4 color : COLOR;
- };
- half4 main(PSInput input) : SV_TARGET {
- return input.color;
- }
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="CBufferTestHalf" PS="PS" VS="VS" TopologyType="TRIANGLE">
- <RootSignature>RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), CBV(b0), DescriptorTable(SRV(t0,numDescriptors=2))</RootSignature>
- <Resource Name="CB0" Dimension="BUFFER" InitialResourceState="COPY_DEST" Init="ByName" TransitionTo="VERTEX_AND_CONSTANT_BUFFER">
- 1.25h, 1.75h, 1.25h, 1.875h
- </Resource>
- <Resource Name='VBuffer' Dimension='BUFFER' Flags='ALLOW_UNORDERED_ACCESS' InitialResourceState='COPY_DEST' Init='FromBytes'>
- 1.0f 1.0f 0, 1.0f -1.0f 0.0f, -1.0f -1.0f 0,
- -1.0f 1.0f 0, 1.0f 1.0f 0.0f, -1.0f -1.0f 0,
- </Resource>
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="320" Height="200" Format="R16G16B16A16_FLOAT" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <RootValues>
- <RootValue ResName="CB0" />
- </RootValues>
- <DescriptorHeap Name="RtvHeap" NumDescriptors="1" Type="RTV">
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName='POSITION' Format='R32G32B32_FLOAT' AlignedByteOffset='0' />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget" />
- </RenderTargets>
- <Shader Name='VS' Target='vs_6_2' EntryPoint='VSMain' Arguments='-enable-16bit-types' Text="@PS" />
- <Shader Name='PS' Target='ps_6_2' EntryPoint='PSMain' Arguments='-enable-16bit-types'>
- <![CDATA[
- cbuffer c_buf {
- half first;
- half second;
- half third;
- half fourth;
- };
- struct PSInput {
- float4 position : SV_POSITION;
- };
- PSInput VSMain(float4 position: POSITION) {
- PSInput result;
- result.position = position;
- return result;
- }
- half4 PSMain(PSInput input) : SV_TARGET {
- return half4(first, second, third, fourth);
- }
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="Barycentrics" PS="PS" VS="VS">
- <RootSignature>RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT)</RootSignature>
- <Resource Name="VBuffer" Dimension="BUFFER" Width="1024" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" Init="FromBytes" ReadBack="true">
- { { 0.0f, 1.0f , 0.0f }, { 1.0f, 0.0f, 0.0f, 1.0f } },
- { { 1.0f, -1.0f , 0.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } },
- { { -1.0f, -1.0f , 0.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } }
- </Resource>
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="5120" Height="9600" Format="R32G32B32A32_FLOAT" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <DescriptorHeap Name="RtvHeap" NumDescriptors="1" Type="RTV">
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName="POSITION" Format="R32G32B32_FLOAT" AlignedByteOffset="0" />
- <InputElement SemanticName="COLOR" Format="R32G32B32A32_FLOAT" AlignedByteOffset="12" />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget" />
- </RenderTargets>
- <Shader Name="VS" Target="vs_6_1">
- <![CDATA[
- struct PSInput {
- float4 position : SV_POSITION;
- nointerpolation float4 color : COLOR;
- };
- PSInput main(float4 position : POSITION, float4 color : COLOR) {
- PSInput result;
- result.position = position;
- result.color = color;
- return result;
- }
- ]]>
- </Shader>
- <Shader Name="PS" Target="ps_6_1">
- <![CDATA[
- struct PSInput {
- float4 position : SV_POSITION;
- nointerpolation float4 color : COLOR;
- };
- float4 main(PSInput input, float3 bary : SV_Barycentrics) : SV_Target {
- float4 vColor0 = GetAttributeAtVertex(input.color, 0);
- float4 vColor1 = GetAttributeAtVertex(input.color, 1);
- float4 vColor2 = GetAttributeAtVertex(input.color, 2);
- return bary.x * vColor0 + bary.y * vColor1 + bary.z * vColor2;
- }
- ]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="ComputeRawBufferLdSt32Bit" CS="CS">
- <RootSignature>RootFlags(0), SRV(t0), SRV(t1), UAV(u0), UAV(u1), DescriptorTable(SRV(t2,numDescriptors=2), UAV(u2,numDescriptors=2))</RootSignature>
- <Resource Name="SRVBuffer0" Dimension="BUFFER" Width="40" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer1" Dimension="BUFFER" Width="40" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="SRVBuffer2" Dimension="BUFFER" Width="40" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer3" Dimension="BUFFER" Width="40" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="UAVBuffer0" Dimension="BUFFER" Width="120" InitialResourceState="COPY_DEST" Init="ByName" Flags="ALLOW_UNORDERED_ACCESS" TransitionTo="UNORDERED_ACCESS" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer1" Dimension="BUFFER" Width="120" InitialResourceState="COPY_DEST" Init="ByName" Flags="ALLOW_UNORDERED_ACCESS" TransitionTo="UNORDERED_ACCESS" ReadBack="true" />
- <Resource Name="UAVBuffer2" Dimension="BUFFER" Width="120" InitialResourceState="COPY_DEST" Init="ByName" Flags="ALLOW_UNORDERED_ACCESS" TransitionTo="UNORDERED_ACCESS" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer3" Dimension="BUFFER" Width="120" InitialResourceState="COPY_DEST" Init="ByName" Flags="ALLOW_UNORDERED_ACCESS" TransitionTo="UNORDERED_ACCESS" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SRVBuffer0" />
- <RootValue Index="1" ResName="SRVBuffer1" />
- <RootValue Index="2" ResName="UAVBuffer0" />
- <RootValue Index="3" ResName="UAVBuffer1" />
- <RootValue Index="4" HeapName="ResHeap" />
- </RootValues>
- <DescriptorHeap Name="ResHeap" Type="CBV_SRV_UAV">
- <Descriptor Name='SRVBuffer2' Kind='SRV' ResName='SRVBuffer2' Flags='RAW' NumElements="10" Format="R32_TYPELESS" />
- <Descriptor Name='SRVBuffer3' Kind='SRV' ResName='SRVBuffer3' NumElements="1" StructureByteStride="40" />
- <Descriptor Name='UAVBuffer2' Kind='UAV' ResName='UAVBuffer2' Flags='RAW' NumElements="30" Format="R32_TYPELESS" />
- <Descriptor Name='UAVBuffer3' Kind='UAV' ResName='UAVBuffer3' NumElements="1" StructureByteStride="120" />
- </DescriptorHeap>
- <Shader Name="CS" Target="cs_6_2">
- <![CDATA[// Shader source code will be set at runtime]]>
- </Shader>
- </ShaderOp>>
-
- <ShaderOp Name="ComputeRawBufferLdSt64Bit" CS="CS">
- <RootSignature>RootFlags(0), SRV(t0), SRV(t1), UAV(u0), UAV(u1), DescriptorTable(SRV(t2,numDescriptors=2), UAV(u2,numDescriptors=2))</RootSignature>
- <Resource Name="SRVBuffer0" Dimension="BUFFER" Width="80" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer1" Dimension="BUFFER" Width="80" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="SRVBuffer2" Dimension="BUFFER" Width="80" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer3" Dimension="BUFFER" Width="80" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="UAVBuffer0" Dimension="BUFFER" Width="240" InitialResourceState="COPY_DEST" Init="ByName" Flags="ALLOW_UNORDERED_ACCESS" TransitionTo="UNORDERED_ACCESS" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer1" Dimension="BUFFER" Width="240" InitialResourceState="COPY_DEST" Init="ByName" Flags="ALLOW_UNORDERED_ACCESS" TransitionTo="UNORDERED_ACCESS" ReadBack="true" />
- <Resource Name="UAVBuffer2" Dimension="BUFFER" Width="240" InitialResourceState="COPY_DEST" Init="ByName" Flags="ALLOW_UNORDERED_ACCESS" TransitionTo="UNORDERED_ACCESS" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer3" Dimension="BUFFER" Width="240" InitialResourceState="COPY_DEST" Init="ByName" Flags="ALLOW_UNORDERED_ACCESS" TransitionTo="UNORDERED_ACCESS" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SRVBuffer0" />
- <RootValue Index="1" ResName="SRVBuffer1" />
- <RootValue Index="2" ResName="UAVBuffer0" />
- <RootValue Index="3" ResName="UAVBuffer1" />
- <RootValue Index="4" HeapName="ResHeap" />
- </RootValues>
- <DescriptorHeap Name="ResHeap" Type="CBV_SRV_UAV">
- <Descriptor Name='SRVBuffer2' Kind='SRV' ResName='SRVBuffer2' Flags='RAW' NumElements="20" Format="R32_TYPELESS" />
- <Descriptor Name='SRVBuffer3' Kind='SRV' ResName='SRVBuffer3' NumElements="1" StructureByteStride="80" />
- <Descriptor Name='UAVBuffer2' Kind='UAV' ResName='UAVBuffer2' Flags='RAW' NumElements="60" Format="R32_TYPELESS" />
- <Descriptor Name='UAVBuffer3' Kind='UAV' ResName='UAVBuffer3' NumElements="1" StructureByteStride="240" />
- </DescriptorHeap>
- <Shader Name="CS" Target="cs_6_2">
- <![CDATA[// Shader source code will be set at runtime]]>
- </Shader>
- </ShaderOp>>
- <ShaderOp Name="ComputeRawBufferLdSt16Bit" CS="CS">
- <RootSignature>RootFlags(0), SRV(t0), SRV(t1), UAV(u0), UAV(u1), DescriptorTable(SRV(t2,numDescriptors=2), UAV(u2,numDescriptors=2))</RootSignature>
- <Resource Name="SRVBuffer0" Dimension="BUFFER" Width="20" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer1" Dimension="BUFFER" Width="20" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="SRVBuffer2" Dimension="BUFFER" Width="20" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer3" Dimension="BUFFER" Width="20" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="UAVBuffer0" Dimension="BUFFER" Width="60" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer1" Dimension="BUFFER" Width="60" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <Resource Name="UAVBuffer2" Dimension="BUFFER" Width="60" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer3" Dimension="BUFFER" Width="60" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SRVBuffer0" />
- <RootValue Index="1" ResName="SRVBuffer1" />
- <RootValue Index="2" ResName="UAVBuffer0" />
- <RootValue Index="3" ResName="UAVBuffer1" />
- <RootValue Index="4" HeapName="ResHeap" />
- </RootValues>
- <DescriptorHeap Name="ResHeap" Type="CBV_SRV_UAV">
- <Descriptor Name='SRVBuffer2' Kind='SRV' ResName='SRVBuffer2' Flags='RAW' NumElements="5" Format="R32_TYPELESS" />
- <Descriptor Name='SRVBuffer3' Kind='SRV' ResName='SRVBuffer3' NumElements="1" StructureByteStride="20" />
- <Descriptor Name='UAVBuffer2' Kind='UAV' ResName='UAVBuffer2' Flags='RAW' NumElements="15" Format="R32_TYPELESS" />
- <Descriptor Name='UAVBuffer3' Kind='UAV' ResName='UAVBuffer3' NumElements="1" StructureByteStride="60" />
- </DescriptorHeap>
- <Shader Name="CS" Target="cs_6_2">
- <![CDATA[// Shader source code will be set at runtime]]>
- </Shader>
- </ShaderOp>>
- <ShaderOp Name="GraphicsRawBufferLdSt32Bit" PS="PS" VS="VS">
- <RootSignature>RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), SRV(t0), SRV(t1), UAV(u0), UAV(u1), DescriptorTable(SRV(t2,numDescriptors=2), UAV(u2,numDescriptors=2))</RootSignature>
- <Resource Name="SRVBuffer0" Dimension="BUFFER" Width="40" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer1" Dimension="BUFFER" Width="40" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="SRVBuffer2" Dimension="BUFFER" Width="40" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer3" Dimension="BUFFER" Width="40" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="UAVBuffer0" Dimension="BUFFER" Width="120" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer1" Dimension="BUFFER" Width="120" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <Resource Name="UAVBuffer2" Dimension="BUFFER" Width="120" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer3" Dimension="BUFFER" Width="120" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <Resource Name="VBuffer" Dimension="BUFFER" InitialResourceState="COPY_DEST" Init="FromBytes" Topology="TRIANGLELIST">
- { { -1.0f, 1.0f, 0.0f } },
- { { 1.0f, 1.0f, 0.0f } },
- { { -1.0f, -1.0f, 0.0f } },
- { { -1.0f, -1.0f, 0.0f } },
- { { 1.0f, 1.0f, 0.0f } },
- { { 1.0f, -1.0f, 0.0f } }
- </Resource>
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="16" Height="16" Format="R32G32B32A32_UINT" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SRVBuffer0" />
- <RootValue Index="1" ResName="SRVBuffer1" />
- <RootValue Index="2" ResName="UAVBuffer0" />
- <RootValue Index="3" ResName="UAVBuffer1" />
- <RootValue Index="4" HeapName="ResHeap" />
- </RootValues>
- <DescriptorHeap Name="ResHeap" Type="CBV_SRV_UAV">
- <Descriptor Name='SRVBuffer2' Kind='SRV' ResName='SRVBuffer2' Flags='RAW' NumElements="10" Format="R32_TYPELESS" />
- <Descriptor Name='SRVBuffer3' Kind='SRV' ResName='SRVBuffer3' NumElements="1" StructureByteStride="40" />
- <Descriptor Name='UAVBuffer2' Kind='UAV' ResName='UAVBuffer2' Flags='RAW' NumElements="30" Format="R32_TYPELESS" />
- <Descriptor Name='UAVBuffer3' Kind='UAV' ResName='UAVBuffer3' NumElements="1" StructureByteStride="120" />
- </DescriptorHeap>
- <DescriptorHeap Name="RtvHeap" NumDescriptors="1" Type="RTV">
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName="POSITION" Format="R32G32B32_FLOAT" AlignedByteOffset="0" />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget"/>
- </RenderTargets>
- <Shader Name="VS" Target="vs_6_2">
- <![CDATA[
- struct PSInput {
- float4 pos : SV_POSITION;
- };
- PSInput main(float3 pos : POSITION) {
- PSInput r;
- r.pos = float4(pos, 1);
- return r;
- }
- ]]>
- </Shader>
- <Shader Name="PS" Target="ps_6_2">
- <![CDATA[// Shader source code will be set at runtime]]>
- </Shader>
- </ShaderOp>
-
- <ShaderOp Name="GraphicsRawBufferLdSt64Bit" PS="PS" VS="VS">
- <RootSignature>RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), SRV(t0), SRV(t1), UAV(u0), UAV(u1), DescriptorTable(SRV(t2,numDescriptors=2), UAV(u2,numDescriptors=2))</RootSignature>
- <Resource Name="SRVBuffer0" Dimension="BUFFER" Width="80" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer1" Dimension="BUFFER" Width="80" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="SRVBuffer2" Dimension="BUFFER" Width="80" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer3" Dimension="BUFFER" Width="80" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="UAVBuffer0" Dimension="BUFFER" Width="240" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer1" Dimension="BUFFER" Width="240" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <Resource Name="UAVBuffer2" Dimension="BUFFER" Width="240" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer3" Dimension="BUFFER" Width="240" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <Resource Name="VBuffer" Dimension="BUFFER" InitialResourceState="COPY_DEST" Init="FromBytes" Topology="TRIANGLELIST">
- { { -1.0f, 1.0f, 0.0f } },
- { { 1.0f, 1.0f, 0.0f } },
- { { -1.0f, -1.0f, 0.0f } },
- { { -1.0f, -1.0f, 0.0f } },
- { { 1.0f, 1.0f, 0.0f } },
- { { 1.0f, -1.0f, 0.0f } }
- </Resource>
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="16" Height="16" Format="R32G32B32A32_UINT" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SRVBuffer0" />
- <RootValue Index="1" ResName="SRVBuffer1" />
- <RootValue Index="2" ResName="UAVBuffer0" />
- <RootValue Index="3" ResName="UAVBuffer1" />
- <RootValue Index="4" HeapName="ResHeap" />
- </RootValues>
- <DescriptorHeap Name="ResHeap" Type="CBV_SRV_UAV">
- <Descriptor Name='SRVBuffer2' Kind='SRV' ResName='SRVBuffer2' Flags='RAW' NumElements="20" Format="R32_TYPELESS" />
- <Descriptor Name='SRVBuffer3' Kind='SRV' ResName='SRVBuffer3' NumElements="1" StructureByteStride="80" />
- <Descriptor Name='UAVBuffer2' Kind='UAV' ResName='UAVBuffer2' Flags='RAW' NumElements="60" Format="R32_TYPELESS" />
- <Descriptor Name='UAVBuffer3' Kind='UAV' ResName='UAVBuffer3' NumElements="1" StructureByteStride="240" />
- </DescriptorHeap>
- <DescriptorHeap Name="RtvHeap" NumDescriptors="1" Type="RTV">
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName="POSITION" Format="R32G32B32_FLOAT" AlignedByteOffset="0" />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget"/>
- </RenderTargets>
- <Shader Name="VS" Target="vs_6_2">
- <![CDATA[
- struct PSInput {
- float4 pos : SV_POSITION;
- };
- PSInput main(float3 pos : POSITION) {
- PSInput r;
- r.pos = float4(pos, 1);
- return r;
- }
- ]]>
- </Shader>
- <Shader Name="PS" Target="ps_6_2">
- <![CDATA[// Shader source code will be set at runtime]]>
- </Shader>
- </ShaderOp>
- <ShaderOp Name="GraphicsRawBufferLdSt16Bit" PS="PS" VS="VS">
- <RootSignature>RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), SRV(t0), SRV(t1), UAV(u0), UAV(u1), DescriptorTable(SRV(t2,numDescriptors=2), UAV(u2,numDescriptors=2))</RootSignature>
- <Resource Name="SRVBuffer0" Dimension="BUFFER" Width="20" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer1" Dimension="BUFFER" Width="20" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="SRVBuffer2" Dimension="BUFFER" Width="20" InitialResourceState="COPY_DEST" Init="ByName" Format="R32_TYPELESS"/>
- <Resource Name="SRVBuffer3" Dimension="BUFFER" Width="20" InitialResourceState="COPY_DEST" Init="ByName" />
- <Resource Name="UAVBuffer0" Dimension="BUFFER" Width="60" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer1" Dimension="BUFFER" Width="60" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <Resource Name="UAVBuffer2" Dimension="BUFFER" Width="60" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" Format="R32_TYPELESS" />
- <Resource Name="UAVBuffer3" Dimension="BUFFER" Width="60" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
- <Resource Name="VBuffer" Dimension="BUFFER" InitialResourceState="COPY_DEST" Init="FromBytes" Topology="TRIANGLELIST">
- { { -1.0f, 1.0f, 0.0f } },
- { { 1.0f, 1.0f, 0.0f } },
- { { -1.0f, -1.0f, 0.0f } },
- { { -1.0f, -1.0f, 0.0f } },
- { { 1.0f, 1.0f, 0.0f } },
- { { 1.0f, -1.0f, 0.0f } }
- </Resource>
- <Resource Name="RTarget" Dimension="TEXTURE2D" Width="16" Height="16" Format="R32G32B32A32_UINT" Flags="ALLOW_RENDER_TARGET" InitialResourceState="COPY_DEST" ReadBack="true" />
- <RootValues>
- <RootValue Index="0" ResName="SRVBuffer0" />
- <RootValue Index="1" ResName="SRVBuffer1" />
- <RootValue Index="2" ResName="UAVBuffer0" />
- <RootValue Index="3" ResName="UAVBuffer1" />
- <RootValue Index="4" HeapName="ResHeap" />
- </RootValues>
- <DescriptorHeap Name="ResHeap" Type="CBV_SRV_UAV">
- <Descriptor Name='SRVBuffer2' Kind='SRV' ResName='SRVBuffer2' Flags='RAW' NumElements="5" Format="R32_TYPELESS" />
- <Descriptor Name='SRVBuffer3' Kind='SRV' ResName='SRVBuffer3' NumElements="1" StructureByteStride="20" />
- <Descriptor Name='UAVBuffer2' Kind='UAV' ResName='UAVBuffer2' Flags='RAW' NumElements="15" Format="R32_TYPELESS" />
- <Descriptor Name='UAVBuffer3' Kind='UAV' ResName='UAVBuffer3' NumElements="1" StructureByteStride="60" />
- </DescriptorHeap>
- <DescriptorHeap Name="RtvHeap" NumDescriptors="1" Type="RTV">
- <Descriptor Name="RTarget" Kind="RTV"/>
- </DescriptorHeap>
- <InputElements>
- <InputElement SemanticName="POSITION" Format="R32G32B32_FLOAT" AlignedByteOffset="0" />
- </InputElements>
- <RenderTargets>
- <RenderTarget Name="RTarget"/>
- </RenderTargets>
- <Shader Name="VS" Target="vs_6_2">
- <![CDATA[
- struct PSInput {
- float4 pos : SV_POSITION;
- };
- PSInput main(float3 pos : POSITION) {
- PSInput r;
- r.pos = float4(pos, 1);
- return r;
- }
- ]]>
- </Shader>
- <Shader Name="PS" Target="ps_6_2">
- <![CDATA[// Shader source code will be set at runtime]]>
- </Shader>
- </ShaderOp>
- <!--
- TODO: Dynamically index into tables
- -->
- </ShaderOpSet>
|