summaryrefslogtreecommitdiffstats
path: root/Tests/TestApp/assets
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2019-12-25 03:23:32 +0000
committerassiduous <assiduous@diligentgraphics.com>2019-12-25 03:23:32 +0000
commit040e4cb7e454d532d249d2a5de6f2aba0c902baa (patch)
treec89a3a009e2d145c3c3cfdb053ad7392eedf6d98 /Tests/TestApp/assets
parentAdded codacy bages (diff)
downloadDiligentEngine-040e4cb7e454d532d249d2a5de6f2aba0c902baa.tar.gz
DiligentEngine-040e4cb7e454d532d249d2a5de6f2aba0c902baa.zip
Updated submodules; removed tests folder (tests are now part of every submodule)
Diffstat (limited to 'Tests/TestApp/assets')
-rw-r--r--Tests/TestApp/assets/LuaTest.lua708
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/FillTextureDX.csh14
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/FillTextureGL.csh17
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffDX.csh9
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffGL.csh22
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffDX.csh9
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffGL.csh12
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffDX.csh8
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffGL.csh20
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffDX.csh35
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGL.csh35
-rw-r--r--Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGLES.csh44
-rw-r--r--Tests/TestApp/assets/Shaders/GSTestDX.gsh37
-rw-r--r--Tests/TestApp/assets/Shaders/GSTestDX.psh18
-rw-r--r--Tests/TestApp/assets/Shaders/GSTestDX.vsh24
-rw-r--r--Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_DX.hlsl23
-rw-r--r--Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl21
-rw-r--r--Tests/TestApp/assets/Shaders/RTTest/QuadVS_DX.hlsl21
-rw-r--r--Tests/TestApp/assets/Shaders/RTTest/QuadVS_GL.glsl24
-rw-r--r--Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_DX.hlsl13
-rw-r--r--Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_GL.glsl11
-rw-r--r--Tests/TestApp/assets/Shaders/SpriteDX.psh14
-rw-r--r--Tests/TestApp/assets/Shaders/SpriteGL.psh11
-rw-r--r--Tests/TestApp/assets/Shaders/TessTestDX.psh18
-rw-r--r--Tests/TestApp/assets/Shaders/TessTestQuadDX.dsh32
-rw-r--r--Tests/TestApp/assets/Shaders/TessTestQuadDX.hsh46
-rw-r--r--Tests/TestApp/assets/Shaders/TessTestQuadDX.vsh24
-rw-r--r--Tests/TestApp/assets/Shaders/TessTestTriDX.dsh32
-rw-r--r--Tests/TestApp/assets/Shaders/TessTestTriDX.hsh44
-rw-r--r--Tests/TestApp/assets/Shaders/TessTestTriDX.vsh24
-rw-r--r--Tests/TestApp/assets/Shaders/TextureIntTestDX.psh28
-rw-r--r--Tests/TestApp/assets/Shaders/TextureIntTestGL.psh33
-rw-r--r--Tests/TestApp/assets/Shaders/TextureTestDX.psh26
-rw-r--r--Tests/TestApp/assets/Shaders/TextureTestDX.vsh22
-rw-r--r--Tests/TestApp/assets/Shaders/TextureTestGL.psh22
-rw-r--r--Tests/TestApp/assets/Shaders/TextureTestGL.vsh25
-rw-r--r--Tests/TestApp/assets/Shaders/UniformBufferDX.psh21
-rw-r--r--Tests/TestApp/assets/Shaders/UniformBufferGL.psh26
-rw-r--r--Tests/TestApp/assets/Shaders/minimalDX.psh11
-rw-r--r--Tests/TestApp/assets/Shaders/minimalDX.vsh23
-rw-r--r--Tests/TestApp/assets/Shaders/minimalGL.psh16
-rw-r--r--Tests/TestApp/assets/Shaders/minimalGL.vsh35
-rw-r--r--Tests/TestApp/assets/Shaders/minimalInstDX.vsh23
-rw-r--r--Tests/TestApp/assets/Shaders/minimalInstGL.vsh27
-rw-r--r--Tests/TestApp/assets/TestComputeShaders.lua372
-rw-r--r--Tests/TestApp/assets/TestRenderScripts.lua220
-rw-r--r--Tests/TestApp/assets/TestRenderTargets.lua442
-rw-r--r--Tests/TestApp/assets/VPAndSRTest.lua80
48 files changed, 0 insertions, 2822 deletions
diff --git a/Tests/TestApp/assets/LuaTest.lua b/Tests/TestApp/assets/LuaTest.lua
deleted file mode 100644
index b4ffc48..0000000
--- a/Tests/TestApp/assets/LuaTest.lua
+++ /dev/null
@@ -1,708 +0,0 @@
--- Test script file
-
-assert( TestGlobalBool == true )
-assert( TestGlobalInt == 19 )
-assert( TestGlobalFloat == 139.25 )
-assert( TestGlobalString == "Test Global String" )
-
-assert(TestGlobalBuffer.uiSizeInBytes == 256)
-assert(TestGlobalBuffer.Name == "TestGlobalBuff")
-assert(TestGlobalBuffer.Usage == "USAGE_DYNAMIC")
-assert(TestGlobalBuffer.BindFlags[1] == "BIND_UNIFORM_BUFFER")
-assert(TestGlobalBuffer.CPUAccessFlags[1] == "CPU_ACCESS_WRITE")
-
-
-assert( TestGlobalSampler.Name == "Test Sampler" )
-assert( TestGlobalSampler.MinFilter == "FILTER_TYPE_COMPARISON_POINT" )
-assert( TestGlobalSampler.MagFilter == "FILTER_TYPE_COMPARISON_LINEAR" )
-assert( TestGlobalSampler.MipFilter == "FILTER_TYPE_COMPARISON_LINEAR" )
-assert( TestGlobalSampler.AddressU == "TEXTURE_ADDRESS_WRAP" )
-assert( TestGlobalSampler.AddressV == "TEXTURE_ADDRESS_MIRROR" )
-assert( TestGlobalSampler.AddressW == "TEXTURE_ADDRESS_CLAMP" )
-assert( TestGlobalSampler.MipLODBias == 4 )
-assert( TestGlobalSampler.MinLOD == 1.5 )
-assert( TestGlobalSampler.MaxLOD == 4 )
-assert( TestGlobalSampler.MaxAnisotropy == 2 )
-assert( TestGlobalSampler.ComparisonFunc == "COMPARISON_FUNC_LESS" )
-assert( TestGlobalSampler.BorderColor.r == 0.0 )
-assert( TestGlobalSampler.BorderColor.g == 0.0 )
-assert( TestGlobalSampler.BorderColor.b == 0.0 )
-assert( TestGlobalSampler.BorderColor.a == 1.0 )
-
-assert( TestGlobalBuffer2UAV.ViewType == "BUFFER_VIEW_UNORDERED_ACCESS" )
-assert( TestGlobalBuffer2UAV.ByteOffset == 0 )
-assert( TestGlobalBuffer2UAV.ByteWidth == 64 )
-
-function CheckTextureAttribs(Texture)
- assert( Texture.Type == "RESOURCE_DIM_TEX_2D" )
- assert( Texture.Name == "Test Global Texture 2D" )
- assert( Texture.Width == 1024 )
- assert( Texture.Height == 512 )
- assert( Texture.MipLevels == 1 )
- assert( Texture.Format == "TEX_FORMAT_RGBA8_UNORM" )
- assert( Texture.Usage == "USAGE_DYNAMIC" )
- assert( Texture.BindFlags[1] == "BIND_SHADER_RESOURCE" )
- assert( Texture.CPUAccessFlags[1] == "CPU_ACCESS_WRITE" )
-end
-CheckTextureAttribs( TestGlobalTexture )
-
-TestSampler = Sampler.Create{
- Name = "Test Sampler",
- MinFilter = "FILTER_TYPE_POINT",
- MagFilter = "FILTER_TYPE_LINEAR",
- MipFilter = "FILTER_TYPE_POINT",
- AddressU = "TEXTURE_ADDRESS_WRAP",
- AddressV = "TEXTURE_ADDRESS_MIRROR",
- AddressW = "TEXTURE_ADDRESS_CLAMP",
- MipLODBias = 2,
- MinLOD = 0.5,
- MaxLOD = 10,
- MaxAnisotropy = 6,
- ComparisonFunc = "COMPARISON_FUNC_GREATER_EQUAL",
- BorderColor = {r = 0.0, g = 0.0, b=0.0, a=1.0},
-}
-assert( TestSampler.Name == "Test Sampler" )
-assert( TestSampler.MinFilter == "FILTER_TYPE_POINT" )
-assert( TestSampler.MagFilter == "FILTER_TYPE_LINEAR" )
-assert( TestSampler.MipFilter == "FILTER_TYPE_POINT" )
-assert( TestSampler.AddressU == "TEXTURE_ADDRESS_WRAP" )
-assert( TestSampler.AddressV == "TEXTURE_ADDRESS_MIRROR" )
-assert( TestSampler.AddressW == "TEXTURE_ADDRESS_CLAMP" )
-assert( TestSampler.MipLODBias == 2 )
-assert( TestSampler.MinLOD == 0.5 )
-assert( TestSampler.MaxLOD == 10 )
-assert( TestSampler.MaxAnisotropy == 6 )
-assert( TestSampler.ComparisonFunc == "COMPARISON_FUNC_GREATER_EQUAL" )
-assert( TestSampler.BorderColor.r == 0.0 )
-assert( TestSampler.BorderColor.g == 0.0 )
-assert( TestSampler.BorderColor.b == 0.0 )
-assert( TestSampler.BorderColor.a == 1.0 )
-
-
-
-TestSampler2 = Sampler.Create{
- Name = TestSampler.Name,
- MinFilter = TestSampler.MinFilter,
- MagFilter = TestSampler.MagFilter,
- MipFilter = TestSampler.MipFilter,
- AddressU = TestSampler.AddressU,
- AddressV = TestSampler.AddressV,
- AddressW = TestSampler.AddressW,
- MipLODBias = TestSampler.MipLODBias,
- MinLOD = TestSampler.MinLOD,
- MaxLOD = TestSampler.MaxLOD,
- MaxAnisotropy = TestSampler.MaxAnisotropy,
- ComparisonFunc = TestSampler.ComparisonFunc,
- BorderColor = TestSampler.BorderColor,
-}
-assert( TestSampler2.Name == "Test Sampler" )
-assert( TestSampler2.MinFilter == "FILTER_TYPE_POINT" )
-assert( TestSampler2.MagFilter == "FILTER_TYPE_LINEAR" )
-assert( TestSampler2.MipFilter == "FILTER_TYPE_POINT" )
-assert( TestSampler2.AddressU == "TEXTURE_ADDRESS_WRAP" )
-assert( TestSampler2.AddressV == "TEXTURE_ADDRESS_MIRROR" )
-assert( TestSampler2.AddressW == "TEXTURE_ADDRESS_CLAMP" )
-assert( TestSampler2.MipLODBias == 2 )
-assert( TestSampler2.MinLOD == 0.5 )
-assert( TestSampler2.MaxLOD == 10 )
-assert( TestSampler2.MaxAnisotropy == 6 )
-assert( TestSampler2.ComparisonFunc == "COMPARISON_FUNC_GREATER_EQUAL" )
-assert( TestSampler2.BorderColor.r == 0.0 )
-assert( TestSampler2.BorderColor.g == 0.0 )
-assert( TestSampler2.BorderColor.b == 0.0 )
-assert( TestSampler2.BorderColor.a == 1.0 )
-
-
-
-TestSampler3 = Sampler.Create{
- BorderColor =
- {r = TestSampler2.BorderColor.r,
- g = TestSampler2.BorderColor.g,
- b = TestSampler2.BorderColor.b,
- a = TestSampler2.BorderColor.a
- }
-}
-assert( TestSampler3.BorderColor.r == 0.0 )
-assert( TestSampler3.BorderColor.g == 0.0 )
-assert( TestSampler3.BorderColor.b == 0.0 )
-assert( TestSampler3.BorderColor.a == 1.0 )
-
--- TestSampler3.MaxLOD = 0
-TestSampler3.BorderColor.a = 1
-assert( TestSampler3.BorderColor.a ==1.0 )
-
-function Func1()
- local TestSampler = Sampler.Create{
- MinFilter = "FILTER_TYPE_POINT"
- }
-end
-
-function Func2()
- Func1()
-end
-
-Func2()
-
-
-TestSampler4 = Sampler.Create{}
-
-
-ErrorTestSampler = Sampler.Create
-{
- SomeUndefinedMember = Undefined,
- MinFilter = Undefined2
-}
-
-function GetShaderPath( ShaderName, ShaderExt )
-
- local ProcessedShaderPath = ""
- if Constants.DeviceType == "D3D11" or Constants.DeviceType == "D3D12" then
- ProcessedShaderPath = "Shaders\\" .. ShaderName .. "DX." .. ShaderExt
- else
- ProcessedShaderPath = "Shaders\\" .. ShaderName .. "GL." .. ShaderExt
- end
-
- return ProcessedShaderPath
-end
-
-TestVS = Shader.Create{
- FilePath = GetShaderPath("minimalInst", "vsh"),
- UseCombinedTextureSamplers = true,
- Desc = {
- ShaderType = "SHADER_TYPE_VERTEX",
- Name = "TestVS"
- }
-}
-assert(TestVS.Desc.ShaderType == "SHADER_TYPE_VERTEX")
-assert(TestVS.Desc.Name == "TestVS")
-
-TestPS = Shader.Create{
- FilePath = GetShaderPath("minimal", "psh"),
- UseCombinedTextureSamplers = true,
- Desc = {
- ShaderType = "SHADER_TYPE_PIXEL",
- Name = "TestPS",
- }
-}
-assert(TestPS.Desc.ShaderType == "SHADER_TYPE_PIXEL")
-assert(TestPS.Desc.Name == "TestPS")
-
-TestPS2 = Shader.Create{
- FilePath = GetShaderPath("minimal", "psh"),
- UseCombinedTextureSamplers = true,
- Desc = {
- ShaderType = TestPS.Desc.ShaderType,
- Name = TestPS.Desc.Name .. "2"
- }
-}
-assert(TestPS2.Desc.ShaderType == "SHADER_TYPE_PIXEL")
-assert(TestPS2.Desc.Name == "TestPS2")
-
-UniformBuffPS = Shader.Create{
- FilePath = GetShaderPath("UniformBuffer", "psh"),
- UseCombinedTextureSamplers = true,
- Desc = {
- ShaderType = "SHADER_TYPE_PIXEL",
- Name = "Unifrom buffer PS"
- }
-}
-
---svTestBlock = UniformBuffPS:GetShaderVariable("cbTestBlock")
---svTestBlock2 = ShaderVariable.Create(UniformBuffPS, "cbTestBlock2")
---svTestBlock2:Set(nil)
---Test = svTestBlock2["Error"]
---svTestBlock2["Error"] = 0
-
-function TestShaderVariable(inVar)
- inVar:Set(nil)
-end
-
-TestVertexLayoutPSO = PipelineState.Create
-{
- Name = "Test Vertex Layout PSO",
- GraphicsPipeline =
- {
- InputLayout =
- {
- { InputIndex = 0, BufferSlot = 0, NumComponents = 3, ValueType = "VT_FLOAT32", IsNormalized = false},
- { InputIndex = 1, BufferSlot = 1, NumComponents = 4, ValueType = "VT_UINT8", IsNormalized = true},
- { InputIndex = 2, BufferSlot = 2, NumComponents = 2, ValueType = "VT_FLOAT32", IsNormalized = false, Frequency = "FREQUENCY_PER_INSTANCE", InstanceDataStepRate = 1},
- },
- pVS = TestVS,
- pPS = TestPS,
- RTVFormats = "TEX_FORMAT_RGBA8_UNORM_SRGB",
- DSVFormat = "TEX_FORMAT_D32_FLOAT",
- }
-}
-
-
-function CheckVertexDescription(VD)
- assert(VD[1].InputIndex == 0)
- assert(VD[1].BufferSlot == 0)
- assert(VD[1].NumComponents == 3)
- assert(VD[1].ValueType == "VT_FLOAT32")
- assert(VD[1].IsNormalized == false)
- assert(VD[2].InputIndex == 1)
- assert(VD[2].BufferSlot == 1)
- assert(VD[2].NumComponents == 4)
- assert(VD[2].ValueType == "VT_UINT8")
- assert(VD[2].IsNormalized == true)
- assert(VD[3].InputIndex == 2)
- assert(VD[3].BufferSlot == 2)
- assert(VD[3].NumComponents == 2)
- assert(VD[3].ValueType == "VT_FLOAT32")
- assert(VD[3].IsNormalized == false)
- assert(VD[3].Frequency == "FREQUENCY_PER_INSTANCE")
- assert(VD[3].InstanceDataStepRate == 1)
-end
-
-CheckVertexDescription(TestVertexLayoutPSO.GraphicsPipeline.InputLayout)
-
-TestVertexLayoutPSO2 = PipelineState.Create
-{
- Name = "Test Vertex Layout PSO",
- GraphicsPipeline =
- {
- InputLayout = TestVertexLayoutPSO.GraphicsPipeline.InputLayout,
- pVS = TestVS,
- pPS = TestPS,
- RTVFormats = "TEX_FORMAT_RGBA8_UNORM_SRGB",
- DSVFormat = "TEX_FORMAT_D32_FLOAT",
- }
-}
-
-CheckVertexDescription(TestVertexLayoutPSO2.GraphicsPipeline.InputLayout)
-
-
-TestVertexLayoutPSO3 = PipelineState.Create
-{
- Name = "Test Vertex Layout PSO",
- GraphicsPipeline =
- {
- InputLayout =
- {
- TestVertexLayoutPSO.GraphicsPipeline.InputLayout[1],
- {
- InputIndex = TestVertexLayoutPSO.GraphicsPipeline.InputLayout[2].InputIndex,
- BufferSlot = TestVertexLayoutPSO.GraphicsPipeline.InputLayout[2].BufferSlot,
- NumComponents = TestVertexLayoutPSO.GraphicsPipeline.InputLayout[2].NumComponents,
- ValueType = TestVertexLayoutPSO.GraphicsPipeline.InputLayout[2].ValueType,
- IsNormalized = TestVertexLayoutPSO.GraphicsPipeline.InputLayout[2].IsNormalized
- },
- {
- InputIndex = TestVertexLayoutPSO2.GraphicsPipeline.InputLayout[3].InputIndex,
- BufferSlot = TestVertexLayoutPSO2.GraphicsPipeline.InputLayout[3].BufferSlot,
- NumComponents = TestVertexLayoutPSO2.GraphicsPipeline.InputLayout[3].NumComponents,
- ValueType = TestVertexLayoutPSO2.GraphicsPipeline.InputLayout[3].ValueType,
- IsNormalized = TestVertexLayoutPSO2.GraphicsPipeline.InputLayout[3].IsNormalized,
- Frequency = TestVertexLayoutPSO2.GraphicsPipeline.InputLayout[3].Frequency,
- InstanceDataStepRate = TestVertexLayoutPSO2.GraphicsPipeline.InputLayout[3].InstanceDataStepRate,
- }
- },
- pVS = TestVS,
- pPS = TestPS,
- RTVFormats = "TEX_FORMAT_RGBA8_UNORM_SRGB",
- DSVFormat = "TEX_FORMAT_D32_FLOAT",
- }
-}
-
-assert(TestVertexLayoutPSO:IsCompatibleWith(TestVertexLayoutPSO))
-assert(TestVertexLayoutPSO:IsCompatibleWith(TestVertexLayoutPSO2))
-assert(TestVertexLayoutPSO:IsCompatibleWith(TestVertexLayoutPSO3))
-assert(TestVertexLayoutPSO2:IsCompatibleWith(TestVertexLayoutPSO))
-assert(TestVertexLayoutPSO2:IsCompatibleWith(TestVertexLayoutPSO2))
-assert(TestVertexLayoutPSO2:IsCompatibleWith(TestVertexLayoutPSO3))
-assert(TestVertexLayoutPSO3:IsCompatibleWith(TestVertexLayoutPSO))
-assert(TestVertexLayoutPSO3:IsCompatibleWith(TestVertexLayoutPSO2))
-assert(TestVertexLayoutPSO3:IsCompatibleWith(TestVertexLayoutPSO3))
-
-CheckVertexDescription(TestVertexLayoutPSO3.GraphicsPipeline.InputLayout)
-
-
-
-function TestRenderScript ()
- Context.SetShaders(TestVS, TestPS)
-end
-
-function TestRenderScriptParams (Bool1, MagicNumber1, MagicNumber2, Bool2, MagicString)
- assert(Bool1 == true)
- assert(MagicNumber1 == 123)
- assert(MagicNumber2 == 345.5)
- assert(Bool2 == false)
- assert(MagicString == "Magic String")
-end
-
-
-function TestSamplerArg(Sampler)
- assert( Sampler.Name == "Test Sampler" )
- assert( Sampler.MinFilter == "FILTER_TYPE_POINT" )
- assert( Sampler.MagFilter == "FILTER_TYPE_LINEAR" )
- assert( Sampler.MipFilter == "FILTER_TYPE_POINT" )
- assert( Sampler.AddressU == "TEXTURE_ADDRESS_WRAP" )
- assert( Sampler.AddressV == "TEXTURE_ADDRESS_MIRROR" )
- assert( Sampler.AddressW == "TEXTURE_ADDRESS_CLAMP" )
- assert( Sampler.MipLODBias == 2 )
- assert( Sampler.MinLOD == 0.5 )
- assert( Sampler.MaxLOD == 10 )
- assert( Sampler.MaxAnisotropy == 6 )
- assert( Sampler.ComparisonFunc == "COMPARISON_FUNC_GREATER_EQUAL" )
- assert( Sampler.BorderColor.r == 0.0 )
- assert( Sampler.BorderColor.g == 0.0 )
- assert( Sampler.BorderColor.b == 0.0 )
- assert( Sampler.BorderColor.a == 1.0 )
- Sampler = nil
- collectgarbage()
-end
-
-
-function TestVertexDescInPSO(VertexDescPSO)
- CheckVertexDescription(VertexDescPSO.GraphicsPipeline.InputLayout)
- VertexDescPSO = nil
- collectgarbage()
-end
-
-
-function TestShaderArg(Shader)
- assert(Shader.Desc.ShaderType == "SHADER_TYPE_VERTEX")
- assert(Shader.Desc.Name == "TestVS")
- Shader = nil
- collectgarbage()
-end
-
-
-TestBuffer = Buffer.Create(
- {
- Name = "Test Buffer",
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_VERTEX_BUFFER", "BIND_SHADER_RESOURCE"},
- uiSizeInBytes = 64,
- Mode = "BUFFER_MODE_FORMATTED",
- ElementByteStride = 4
- },
- "VT_FLOAT32",
- {1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16}
-)
-assert(TestBuffer.Name == "Test Buffer")
-assert(TestBuffer.Usage == "USAGE_DEFAULT")
-assert(TestBuffer.BindFlags[1] == "BIND_VERTEX_BUFFER" and TestBuffer.BindFlags[2] == "BIND_SHADER_RESOURCE" or
- TestBuffer.BindFlags[2] == "BIND_VERTEX_BUFFER" and TestBuffer.BindFlags[1] == "BIND_SHADER_RESOURCE")
-assert(TestBuffer.Mode == "BUFFER_MODE_FORMATTED")
-
-TestBufferSRV = TestBuffer:CreateView{
- Name = "TestBuffer SRV",
- ViewType = "BUFFER_VIEW_SHADER_RESOURCE",
- ByteOffset = 16,
- ByteWidth = 32,
- Format = {ValueType = "VT_FLOAT32", NumComponents = 1, IsNormalized = false}
-}
-
-assert(TestBufferSRV.ViewType == "BUFFER_VIEW_SHADER_RESOURCE" )
-assert(TestBufferSRV.ByteOffset == 16)
-assert(TestBufferSRV.ByteWidth == 32)
-assert(TestBufferSRV.Format.ValueType == "VT_FLOAT32" )
-assert(TestBufferSRV.Format.NumComponents == 1 )
-assert(TestBufferSRV.Format.IsNormalized == false )
-
-
-function TestBufferArg (Buffer)
- assert(TestBuffer.Name == "Test Buffer")
- assert(TestBuffer.Usage == "USAGE_DEFAULT")
- assert(TestBuffer.BindFlags[1] == "BIND_VERTEX_BUFFER" and TestBuffer.BindFlags[2] == "BIND_SHADER_RESOURCE" or
- TestBuffer.BindFlags[2] == "BIND_VERTEX_BUFFER" and TestBuffer.BindFlags[1] == "BIND_SHADER_RESOURCE")
- Buffer = nil
- collectgarbage()
-end
-
-
-TestBuffer2 = Buffer.Create({
- Name = "Test Buffer2",
- Usage = "USAGE_STAGING",
- CPUAccessFlags = {"CPU_ACCESS_WRITE"},
- uiSizeInBytes = 256
-})
-assert(TestBuffer2.Name == "Test Buffer2")
-assert(TestBuffer2.Usage == "USAGE_STAGING")
-assert(TestBuffer2.Mode == "BUFFER_MODE_UNDEFINED")
-assert(TestBuffer2.CPUAccessFlags[1] == "CPU_ACCESS_WRITE")
-
-TestBuffer3 = Buffer.Create(
- {
- Name = "Test Buffer",
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_VERTEX_BUFFER", "BIND_SHADER_RESOURCE"},
- uiSizeInBytes = 64,
- Mode = "BUFFER_MODE_FORMATTED",
- ElementByteStride = 4
- }
-)
-
-Context.SetVertexBuffers(1, TestBuffer, 0, TestBuffer3, 16, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION", "SET_VERTEX_BUFFERS_FLAG_RESET")
-Context.SetVertexBuffers(1, TestBuffer, 0, nil)
-Context.SetVertexBuffers(nil, nil, nil, "RESOURCE_STATE_TRANSITION_MODE_NONE", {"SET_VERTEX_BUFFERS_FLAG_RESET", "SET_VERTEX_BUFFERS_FLAG_RESET"})
-
-TestBuffer3 = Buffer.Create({
- Name = "Test Buffer 3",
- BindFlags = {"BIND_VERTEX_BUFFER", "BIND_UNORDERED_ACCESS", "BIND_SHADER_RESOURCE"},
- Mode = "BUFFER_MODE_RAW",
- uiSizeInBytes = (4+4) * 4 * 4,
- ElementByteStride = 4 * 4
-})
-assert( TestBuffer3.Mode == "BUFFER_MODE_RAW" )
-
-TestBuffer3SRV = TestBuffer3:CreateView{
- Name = "TestBuffer3 SRV",
- ViewType = "BUFFER_VIEW_SHADER_RESOURCE",
- ByteOffset = 16,
- ByteWidth = 32
-}
-assert(TestBuffer3SRV.ViewType == "BUFFER_VIEW_SHADER_RESOURCE" )
-assert(TestBuffer3SRV.ByteOffset == 16)
-assert(TestBuffer3SRV.ByteWidth == 32)
-
-Buff3UAV = TestBuffer3:CreateView{
- Name = "TestBuffer3 UAV",
- ViewType = "BUFFER_VIEW_UNORDERED_ACCESS",
- ByteOffset = 16
-}
-assert(Buff3UAV.ViewType == "BUFFER_VIEW_UNORDERED_ACCESS" )
-assert(Buff3UAV.ByteOffset == 16 )
-assert(Buff3UAV.ByteWidth == TestBuffer3.uiSizeInBytes - Buff3UAV.ByteOffset)
-
-
-function TestBufferViewArg(BuffViewArg)
- assert( BuffViewArg.Name == "TestGlobalBuff2UAV" )
- assert( BuffViewArg.ViewType == "BUFFER_VIEW_UNORDERED_ACCESS" )
- assert( BuffViewArg.ByteOffset == 0 )
- assert( BuffViewArg.ByteWidth == 32 )
-end
-
-
-IndexBuffer = Buffer.Create(
- { BindFlags = "BIND_INDEX_BUFFER" },
- "VT_UINT32",
- {0,1,2}
-)
-Context.SetIndexBuffer(IndexBuffer, 4, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
-
-TestTexture = Texture.Create{
- Name = "Test Texture 2D",
- Type = "RESOURCE_DIM_TEX_2D_ARRAY", Width = 512, Height = 512, ArraySize = 16,
- Format = "TEX_FORMAT_RGBA8_UNORM",
- MipLevels = 8,
- SampleCount = 1,
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_SHADER_RESOURCE", "BIND_UNORDERED_ACCESS"}
-}
-
-assert( TestTexture.Name == "Test Texture 2D" )
-assert( TestTexture.Type == "RESOURCE_DIM_TEX_2D_ARRAY" )
-assert( TestTexture.Width == 512 )
-assert( TestTexture.Height == 512 )
-assert( TestTexture.ArraySize == 16 )
-assert( TestTexture.Format == "TEX_FORMAT_RGBA8_UNORM" )
-assert( TestTexture.MipLevels == 8 )
-assert( TestTexture.SampleCount == 1 )
-assert( TestTexture.Usage == "USAGE_DEFAULT" )
-assert( TestTexture.BindFlags[1] == "BIND_SHADER_RESOURCE" and TestTexture.BindFlags[2] == "BIND_UNORDERED_ACCESS" or
- TestTexture.BindFlags[1] == "BIND_UNORDERED_ACCESS" and TestTexture.BindFlags[2] == "BIND_SHADER_RESOURCE" )
-
-DefaultTestSRV = TestTexture:GetDefaultView("TEXTURE_VIEW_SHADER_RESOURCE")
-assert( DefaultTestSRV.ViewType == "TEXTURE_VIEW_SHADER_RESOURCE" )
-assert( DefaultTestSRV.Format == TestTexture.Format )
-assert( DefaultTestSRV.TextureDim == TestTexture.Type )
-assert( DefaultTestSRV.MostDetailedMip == 0 )
-assert( DefaultTestSRV.NumMipLevels == TestTexture.MipLevels )
-assert( DefaultTestSRV.FirstArraySlice == 0 )
-assert( DefaultTestSRV.NumArraySlices == TestTexture.ArraySize )
-
-TestUAV1 = TestTexture:CreateView{
- ViewType = "TEXTURE_VIEW_UNORDERED_ACCESS",
- TextureDim = "RESOURCE_DIM_TEX_2D",
- AccessFlags = "UAV_ACCESS_FLAG_READ",
- MostDetailedMip = 1,
- NumMipLevels = 1,
- FirstArraySlice = 0,
- NumArraySlices = 1
-}
-
-assert(TestUAV1.AccessFlags[1] == "UAV_ACCESS_FLAG_READ")
-assert( type(TestUAV1.AccessFlags[2]) == "nil")
-
-TestUAV2 = TestTexture:CreateView{
- ViewType = "TEXTURE_VIEW_UNORDERED_ACCESS",
- TextureDim = "RESOURCE_DIM_TEX_2D_ARRAY",
- AccessFlags = "UAV_ACCESS_FLAG_WRITE",
- FirstArraySlice = 0,
- NumArraySlices = TestTexture.ArraySize
-}
-assert(TestUAV2.AccessFlags[1] == "UAV_ACCESS_FLAG_WRITE")
-assert( type(TestUAV2.AccessFlags[2]) == "nil")
-
-TestUAV3 = TestTexture:CreateView{
- ViewType = "TEXTURE_VIEW_UNORDERED_ACCESS",
- TextureDim = "RESOURCE_DIM_TEX_2D_ARRAY",
- AccessFlags = {"UAV_ACCESS_FLAG_READ", "UAV_ACCESS_FLAG_WRITE"},
- MostDetailedMip = 4,
- NumArraySlices = TestTexture.ArraySize
-}
-
-function Set (list)
- local set = {}
- for _, l in ipairs(list) do set[l] = true end
- return set
-end
-FlagsSet = Set(TestUAV3.AccessFlags)
-assert(FlagsSet["UAV_ACCESS_FLAG_READ"] and FlagsSet["UAV_ACCESS_FLAG_WRITE"] and FlagsSet["UAV_ACCESS_FLAG_READ_WRITE"])
-assert( type(TestUAV3.AccessFlags[4]) == "nil")
-
-
-DefaultTestSRV:SetSampler(TestSampler)
-
-if Constants.DeviceType == "D3D11" or Constants.DeviceType == "D3D12" then
-
- --TestTextureView = TextureView.Create(TestTexture,
- TestTextureView = TestTexture:CreateView(
- {
- Name = "TestTextureSRV",
- ViewType = "TEXTURE_VIEW_SHADER_RESOURCE",
- TextureDim = "RESOURCE_DIM_TEX_2D_ARRAY",
- Format = "TEX_FORMAT_RGBA8_UNORM",
- MostDetailedMip = 1,
- NumMipLevels = 2,
- FirstArraySlice = 3,
- NumArraySlices = 4
- }
- )
- assert( TestTextureView.Name == "TestTextureSRV" )
- assert( TestTextureView.ViewType == "TEXTURE_VIEW_SHADER_RESOURCE" )
- assert( TestTextureView.TextureDim == "RESOURCE_DIM_TEX_2D_ARRAY" )
- assert( TestTextureView.Format == "TEX_FORMAT_RGBA8_UNORM" )
- assert( TestTextureView.MostDetailedMip == 1 )
- assert( TestTextureView.NumMipLevels == 2 )
- assert( TestTextureView.FirstArraySlice == 3 )
- assert( TestTextureView.NumArraySlices == 4 )
-
- assert( TestGlobalTextureView.Name == "TestTextureSRV2" )
- assert( TestGlobalTextureView.ViewType == "TEXTURE_VIEW_SHADER_RESOURCE" )
- assert( TestGlobalTextureView.TextureDim == "RESOURCE_DIM_TEX_2D" )
- assert( TestGlobalTextureView.Format == "TEX_FORMAT_RGBA8_UNORM" )
- assert( TestGlobalTextureView.MostDetailedMip == 0 )
- assert( TestGlobalTextureView.NumMipLevels == 1 )
- assert( TestGlobalTextureView.FirstArraySlice == 0 )
- assert( TestGlobalTextureView.NumArraySlices == 1 )
-end
-
-function TestTextureViewArg(TextureView)
- assert( TextureView.Name == "TestTextureSRV" )
- assert( TextureView.ViewType == "TEXTURE_VIEW_SHADER_RESOURCE" )
- assert( TextureView.TextureDim == "RESOURCE_DIM_TEX_2D_ARRAY" )
- assert( TextureView.Format == "TEX_FORMAT_RGBA8_UNORM" )
- assert( TextureView.MostDetailedMip == 1 )
- assert( TextureView.NumMipLevels == 2 )
- assert( TextureView.FirstArraySlice == 3 )
- assert( TextureView.NumArraySlices == 4 )
-end
-
-
-function TestTextureArg(Texture)
- CheckTextureAttribs( Texture )
- collectgarbage()
-end
-
-
-TestDrawAttribs = DrawAttribs.Create{
- NumIndices = 128,
- IndexType = "VT_UINT16",
- NumInstances = 32,
- BaseVertex = 48,
- IndirectDrawArgsOffset = 1024,
- StartVertexLocation = 64,
- FirstInstanceLocation = 96,
- pIndirectDrawAttribs = TestBuffer2,
- IndirectAttribsBufferStateTransitionMode = "RESOURCE_STATE_TRANSITION_MODE_NONE",
- Flags = {"DRAW_FLAG_VERIFY_STATES", "DRAW_FLAG_VERIFY_DRAW_ATTRIBS", "DRAW_FLAG_VERIFY_RENDER_TARGETS"}
-}
-assert( TestDrawAttribs.NumIndices == 128 )
-assert( TestDrawAttribs.IndexType == "VT_UINT16" )
-assert( TestDrawAttribs.NumInstances == 32 )
-assert( TestDrawAttribs.BaseVertex == 48 )
-assert( TestDrawAttribs.IndirectDrawArgsOffset == 1024 )
-assert( TestDrawAttribs.StartVertexLocation == 64 )
-assert( TestDrawAttribs.FirstInstanceLocation == 96 )
---Context.Draw(TestBuffer2)
-
-
-TestDrawAttribs.NumVertices = 92
-TestDrawAttribs.IndexType = "VT_UINT32"
-TestDrawAttribs.NumInstances = 19
-TestDrawAttribs.BaseVertex = 498
-TestDrawAttribs.IndirectDrawArgsOffset = 234
-TestDrawAttribs.FirstIndexLocation = 264
-TestDrawAttribs.FirstInstanceLocation = 946
-TestDrawAttribs.pIndirectDrawAttribs = TestGlobalBuffer
-TestDrawAttribs.IndirectAttribsBufferStateTransitionMode = "RESOURCE_STATE_TRANSITION_MODE_TRANSITION"
-
-TestDrawAttribs2 = DrawAttribs.Create{
- pIndirectDrawAttribs = TestDrawAttribs.pIndirectDrawAttribs
-}
-assert( TestDrawAttribs.pIndirectDrawAttribs.Name == TestDrawAttribs2.pIndirectDrawAttribs.Name )
-
-assert( TestDrawAttribs.NumIndices == 92 )
-assert( TestDrawAttribs.NumVertices == 92 )
-assert( TestDrawAttribs.IndexType == "VT_UINT32" )
-assert( TestDrawAttribs.NumInstances == 19 )
-assert( TestDrawAttribs.BaseVertex == 498 )
-assert( TestDrawAttribs.IndirectDrawArgsOffset == 234 )
-assert( TestDrawAttribs.FirstIndexLocation == 264 )
-assert( TestDrawAttribs.StartVertexLocation == 264 )
-assert( TestDrawAttribs.FirstInstanceLocation == 946 )
-assert( TestDrawAttribs.IndirectAttribsBufferStateTransitionMode == "RESOURCE_STATE_TRANSITION_MODE_TRANSITION" )
-
-
-
-assert( TestGlobalDrawAttribs.NumVertices == 123 );
-assert( TestGlobalDrawAttribs.NumIndices == 123 );
-assert( TestGlobalDrawAttribs.IndexType == "VT_UINT16" );
-assert( TestGlobalDrawAttribs.NumInstances == 19 );
-assert( TestGlobalDrawAttribs.BaseVertex == 97 );
-assert( TestGlobalDrawAttribs.IndirectDrawArgsOffset == 120 );
-assert( TestGlobalDrawAttribs.StartVertexLocation == 98 );
-assert( TestGlobalDrawAttribs.FirstIndexLocation == 98 );
-
-function TestDrawAttribsArg(DrawAttrs)
- assert( DrawAttrs.NumVertices == 34 );
- assert( DrawAttrs.NumIndices == 34 );
- assert( DrawAttrs.IndexType == "VT_UINT16" );
- assert( DrawAttrs.NumInstances == 139 );
- assert( DrawAttrs.BaseVertex == 937 );
- assert( DrawAttrs.IndirectDrawArgsOffset == 1205 );
- assert( DrawAttrs.StartVertexLocation == 198 );
- assert( DrawAttrs.FirstIndexLocation == 198 );
-end
---getmetatable(TestSampler).__index = {}
-
-TestResourceMapping = ResourceMapping.Create{
- {Name = "TestShaderName", pObject = DefaultTestSRV},
- {Name = "TestShaderName2", pObject = DefaultTestSRV},
- {Name = "TestBufferName", pObject = TestGlobalBuffer}
-}
-
-assert( TestResourceMapping["TestShaderName"].ViewType == "TEXTURE_VIEW_SHADER_RESOURCE" )
-assert( TestResourceMapping["TestBufferName"].Name == "TestGlobalBuff" )
-assert( type(TestResourceMapping["BadName"]) == "nil" )
-
-TestResourceMapping["TestBufferName2"] = TestBuffer
-assert( TestResourceMapping["TestBufferName2"].Name == "Test Buffer" )
-
-TestResourceMapping["TestShaderName"] = DefaultTestSRV
-assert( TestResourceMapping["TestShaderName"].ViewType == "TEXTURE_VIEW_SHADER_RESOURCE" )
-
-TestResourceMapping["TestBufferName2"] = nil
-assert( type(TestResourceMapping["TestBufferName2"]) == "nil" )
-
-assert( TestGlobalResourceMapping["TestGlobalTextureSRV"].ViewType == "TEXTURE_VIEW_SHADER_RESOURCE" )
-
-function TestResourceMappingArg(ResMappingArg)
- assert( ResMappingArg["TestGlobalTextureSRV2"].ViewType == "TEXTURE_VIEW_SHADER_RESOURCE" )
- ResMappingArg["TestBufferName"] = TestBuffer
-end
diff --git a/Tests/TestApp/assets/Shaders/CSTest/FillTextureDX.csh b/Tests/TestApp/assets/Shaders/CSTest/FillTextureDX.csh
deleted file mode 100644
index 0006edd..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/FillTextureDX.csh
+++ /dev/null
@@ -1,14 +0,0 @@
-
-RWTexture2D<unorm float4> g_tex2DTestUAV;
-
-[numthreads(16,16,1)]
-void main(uint3 DTid : SV_DispatchThreadID)
-{
- uint2 ui2Dim;
- g_tex2DTestUAV.GetDimensions(ui2Dim.x, ui2Dim.y);
- if( DTid.x >= ui2Dim.x || DTid.y >= ui2Dim.y )return;
-
- float2 f2UV = float2(DTid.xy) / float2(ui2Dim);
- float DistFromCenter = length(f2UV - float2(0.5,0.5));
- g_tex2DTestUAV[DTid.xy] = float4((1-DistFromCenter), abs(f2UV.x-0.5), abs(0.5-f2UV.y), 0.0);
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/FillTextureGL.csh b/Tests/TestApp/assets/Shaders/CSTest/FillTextureGL.csh
deleted file mode 100644
index 0459cc1..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/FillTextureGL.csh
+++ /dev/null
@@ -1,17 +0,0 @@
-
-layout(rgba8, binding = 2) uniform writeonly image2D g_tex2DTestUAV;
-
-layout (local_size_x = 16, local_size_y = 8, local_size_z = 1) in;
-
-// Declare main program function which is executed once
-// glDispatchCompute is called from the application.
-void main()
-{
- ivec2 Dim = imageSize(g_tex2DTestUAV);
- if( gl_GlobalInvocationID.x >= uint(Dim.x) || gl_GlobalInvocationID.y >= uint(Dim.y) )
- return;
-
- vec2 f2UV = vec2( ivec2(gl_GlobalInvocationID.xy) % Dim ) / vec2(Dim);
- float DistFromCenter = length(f2UV - vec2(0.5,0.5));
- imageStore(g_tex2DTestUAV, ivec2(gl_GlobalInvocationID.xy), vec4((1.0-DistFromCenter), abs(f2UV.x-0.5), abs(0.5-f2UV.y), 0.0) );
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffDX.csh b/Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffDX.csh
deleted file mode 100644
index c930789..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffDX.csh
+++ /dev/null
@@ -1,9 +0,0 @@
-
-RWBuffer<uint4> bufIndirectDispatchArgs;
-
-[numthreads(1,1,1)]
-void main(uint3 DTid : SV_DispatchThreadID)
-{
- bufIndirectDispatchArgs[0] = uint4(0,0,0,0);
- bufIndirectDispatchArgs[1] = uint4(1,1,1,0);
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffGL.csh b/Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffGL.csh
deleted file mode 100644
index 6f44c48..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffGL.csh
+++ /dev/null
@@ -1,22 +0,0 @@
-
-// Declare input/output buffer from/to wich we will read/write data.
-// In this particular shader we only write data into the buffer.
-// If you do not want your data to be aligned by compiler try to use:
-// packed or shared instead of std140 keyword.
-// We also bind the buffer to index 0. You need to set the buffer binding
-// in the range [0..3] – this is the minimum range approved by Khronos.
-// Notice that various platforms might support more indices than that.
-layout(std140, binding = 3) buffer bufIndirectDispatchArgs
-{
- uvec4 data[];
-}g_DispatchArgs;
-
-
-layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-// Declare main program function which is executed once
-// glDispatchCompute is called from the application.
-void main()
-{
- g_DispatchArgs.data[0] = uvec4(0,0,0,0);
- g_DispatchArgs.data[1] = uvec4(1,1,1,0);
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffDX.csh b/Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffDX.csh
deleted file mode 100644
index 2c754d5..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffDX.csh
+++ /dev/null
@@ -1,9 +0,0 @@
-
-RWBuffer<uint4> bufIndirectDrawArgs;
-
-[numthreads(1,1,1)]
-void main(uint3 DTid : SV_DispatchThreadID)
-{
- bufIndirectDrawArgs[0] = uint4(4,1,0,0);
- bufIndirectDrawArgs[1] = uint4(0,0,0,0);
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffGL.csh b/Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffGL.csh
deleted file mode 100644
index fda2387..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffGL.csh
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-layout(rgba32ui, binding = 3) uniform writeonly uimageBuffer bufIndirectDrawArgs;
-
-layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-// Declare main program function which is executed once
-// glDispatchCompute is called from the application.
-void main()
-{
- imageStore(bufIndirectDrawArgs, 0, uvec4(4,1,0,0));
- imageStore(bufIndirectDrawArgs, 1, uvec4(0,0,0,0));
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffDX.csh b/Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffDX.csh
deleted file mode 100644
index af003ae..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffDX.csh
+++ /dev/null
@@ -1,8 +0,0 @@
-
-RWBuffer<uint4> bufIndices;
-
-[numthreads(1,1,1)]
-void main(uint3 DTid : SV_DispatchThreadID)
-{
- bufIndices[0] = uint4(0,1,2,3);
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffGL.csh b/Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffGL.csh
deleted file mode 100644
index 347f8cc..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffGL.csh
+++ /dev/null
@@ -1,20 +0,0 @@
-
-// Declare input/output buffer from/to wich we will read/write data.
-// In this particular shader we only write data into the buffer.
-// If you do not want your data to be aligned by compiler try to use:
-// packed or shared instead of std140 keyword.
-// We also bind the buffer to index 0. You need to set the buffer binding
-// in the range [0..3] – this is the minimum range approved by Khronos.
-// Notice that various platforms might support more indices than that.
-layout(std140, binding = 1) buffer bufIndices
-{
- uvec4 data[];
-}g_Indices;
-
-layout (local_size_x = 2, local_size_y = 1, local_size_z = 1) in;
-// Declare main program function which is executed once
-// glDispatchCompute is called from the application.
-void main()
-{
- g_Indices.data[0] = uvec4(0,1,2,3);
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffDX.csh b/Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffDX.csh
deleted file mode 100644
index c84fabd..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffDX.csh
+++ /dev/null
@@ -1,35 +0,0 @@
-
-RWBuffer<float4> bufPositions : register(u3);
-RWBuffer<float4> bufTexcoord;
-Buffer<float4> Offsets;
-
-[numthreads(2,1,1)]
-void main(uint3 DTid : SV_DispatchThreadID)
-{
- int Ind = int(DTid.x);
-
- float2 pos[4] =
- {
- float2(0.0, 0.0),
- float2(0.0, 1.0),
- float2(1.0, 0.0),
- float2(1.0, 1.0)
- };
-
- float2 CurrPos = pos[Ind];
- float2 Offset = Offsets.Load(Ind);
- CurrPos += Offset;
-
- CurrPos = CurrPos*float2(0.3, 0.3) + float2(0.0, -1.0);
-
- float2 uv[4] =
- {
- float2(0.0, 1.0),
- float2(0.0, 0.0),
- float2(1.0, 1.0),
- float2(1.0, 0.0)
- };
-
- bufPositions[Ind] = float4(CurrPos.xy, 0.0, 0.0);
- bufTexcoord[Ind] = float4(uv[Ind],0,0);
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGL.csh b/Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGL.csh
deleted file mode 100644
index bb3162b..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGL.csh
+++ /dev/null
@@ -1,35 +0,0 @@
-
-layout(rgba32f) uniform writeonly imageBuffer bufPositions;
-layout(rgba32f) uniform writeonly imageBuffer bufTexcoord;
-
-uniform samplerBuffer Offsets;
-
-layout (local_size_x = 2, local_size_y = 1, local_size_z = 1) in;
-// Declare main program function which is executed once
-// glDispatchCompute is called from the application.
-void main()
-{
- int Ind = int(gl_GlobalInvocationID.x);
-
- vec2 pos[4];
- pos[0] = vec2(0.0, 0.0);
- pos[1] = vec2(0.0, 1.0);
- pos[2] = vec2(1.0, 0.0);
- pos[3] = vec2(1.0, 1.0);
-
- vec2 CurrPos = pos[Ind];
-
- vec4 Offset = texelFetch(Offsets, Ind);
- CurrPos += Offset.xy;
-
- CurrPos = CurrPos*vec2(0.3, 0.3) + vec2(0.0, -1.0);
-
- vec2 uv[4];
- uv[0] = vec2(0.0, 1.0);
- uv[1] = vec2(0.0, 0.0);
- uv[2] = vec2(1.0, 1.0);
- uv[3] = vec2(1.0, 0.0);
-
- imageStore(bufPositions, Ind, vec4(CurrPos.xy, 0.0, 0.0));
- imageStore(bufTexcoord, Ind, vec4(uv[Ind].xy, 0.0, 0.0));
-}
diff --git a/Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGLES.csh b/Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGLES.csh
deleted file mode 100644
index 01f68ee..0000000
--- a/Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGLES.csh
+++ /dev/null
@@ -1,44 +0,0 @@
-
-// Declare input/output buffer from/to wich we will read/write data.
-// In this particular shader we only write data into the buffer.
-// If you do not want your data to be aligned by compiler try to use:
-// packed or shared instead of std140 keyword.
-// We also bind the buffer to index 0. You need to set the buffer binding
-// in the range [0..3] – this is the minimum range approved by Khronos.
-// Notice that various platforms might support more indices than that.
-layout(std140, binding = 2) buffer bufPositions
-{
- vec4 data[];
-}g_Positions;
-
-layout(std140) buffer bufTexcoord
-{
- vec4 data[];
-}g_Texcoords;
-
-
-layout (local_size_x = 2, local_size_y = 1, local_size_z = 1) in;
-// Declare main program function which is executed once
-// glDispatchCompute is called from the application.
-void main()
-{
- int Ind = int(gl_GlobalInvocationID.x);
-
- vec2 pos[4];
- pos[0] = vec2(0.0, 0.0);
- pos[1] = vec2(0.0, 1.0);
- pos[2] = vec2(1.0, 0.0);
- pos[3] = vec2(1.0, 1.0);
-
- vec2 CurrPos = pos[Ind];
- CurrPos = CurrPos*vec2(0.3, 0.3) + vec2(0.0, -1.0);
-
- vec2 uv[4];
- uv[0] = vec2(0.0, 1.0);
- uv[1] = vec2(0.0, 0.0);
- uv[2] = vec2(1.0, 1.0);
- uv[3] = vec2(1.0, 0.0);
-
- g_Positions.data[Ind] = vec4(CurrPos.xy, 0.0, 0.0);
- g_Texcoords.data[Ind] = vec4(uv[Ind], 0.0, 0.0);
-}
diff --git a/Tests/TestApp/assets/Shaders/GSTestDX.gsh b/Tests/TestApp/assets/Shaders/GSTestDX.gsh
deleted file mode 100644
index 4916ff2..0000000
--- a/Tests/TestApp/assets/Shaders/GSTestDX.gsh
+++ /dev/null
@@ -1,37 +0,0 @@
-
-struct VSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-struct GSOut
-{
- VSOutput VSOut;
-};
-
-
-[maxvertexcount(6)]
-void main(point VSOutput In[1],
- inout TriangleStream<GSOut> triStream )
-{
- float2 Offsets[3];
- Offsets[0] = float2(-0.05, -0.05);
- Offsets[1] = float2(+0.05, -0.05);
- Offsets[2] = float2( 0.0, 0.0);
- for(int i=0; i<3; i++)
- {
- GSOut Out;
- Out.VSOut = In[0];
- Out.VSOut.f4Position.xy += Offsets[i];
- triStream.Append( Out );
- }
- triStream.RestartStrip();
- for(int j=0; j<3; j++)
- {
- GSOut Out;
- Out.VSOut = In[0];
- Out.VSOut.f4Position.xy += Offsets[j]*float2(1.0, -1.0);
- triStream.Append( Out );
- }
-}
diff --git a/Tests/TestApp/assets/Shaders/GSTestDX.psh b/Tests/TestApp/assets/Shaders/GSTestDX.psh
deleted file mode 100644
index 9686129..0000000
--- a/Tests/TestApp/assets/Shaders/GSTestDX.psh
+++ /dev/null
@@ -1,18 +0,0 @@
-struct VSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-struct GSOut
-{
- VSOutput VSOut;
-};
-
-
-
-void main(GSOut In,
- out float4 Color : SV_Target)
-{
- Color = float4(In.VSOut.f3Color,1.0);
-}
diff --git a/Tests/TestApp/assets/Shaders/GSTestDX.vsh b/Tests/TestApp/assets/Shaders/GSTestDX.vsh
deleted file mode 100644
index a5c43ea..0000000
--- a/Tests/TestApp/assets/Shaders/GSTestDX.vsh
+++ /dev/null
@@ -1,24 +0,0 @@
-
-struct VSIn
-{
- uint uiVertexId : SV_VertexID;
-};
-
-struct VSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-void main(VSIn In,
- out VSOutput Out)
-{
- float4 Positions[2];
- Positions[0] = float4(-0.4,0.3,0.0,1.0);
- Positions[1] = float4(-0.35,0.25,0.0,1.0);
- float3 Color[2];
- Color[0] = float3(1.0,0.0,0.0);
- Color[1] = float3(0.0,1.0,0.0);
- Out.f4Position = Positions[In.uiVertexId];
- Out.f3Color = Color[In.uiVertexId];
-}
diff --git a/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_DX.hlsl b/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_DX.hlsl
deleted file mode 100644
index e6030f0..0000000
--- a/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_DX.hlsl
+++ /dev/null
@@ -1,23 +0,0 @@
-
-Texture2D<float4> g_tex2DTest0 : register(t2);
-SamplerState g_tex2DTest0_sampler : register(s3);
-
-Texture2D<float4> g_tex2DTest1;
-SamplerState g_tex2DTest1_sampler;
-
-Texture2D<float4> g_tex2DTest2;
-SamplerState g_tex2DTest2_sampler;
-
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float2 f2UV : TEXCOORD;
-};
-
-float4 main(VSOut In) : SV_Target
-{
- float4 Col0 = g_tex2DTest0.Sample( g_tex2DTest0_sampler, In.f2UV );
- float4 Col1 = g_tex2DTest1.Sample( g_tex2DTest1_sampler, In.f2UV );
- float4 Col2 = g_tex2DTest2.Sample( g_tex2DTest2_sampler, In.f2UV );
- return float4(Col0.x, Col1.y, Col2.z, 0.0);
-}
diff --git a/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl b/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl
deleted file mode 100644
index 726dfee..0000000
--- a/Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl
+++ /dev/null
@@ -1,21 +0,0 @@
-
-uniform sampler2D g_tex2DTest0;
-uniform sampler2D g_tex2DTest1;
-uniform sampler2D g_tex2DTest2;
-
-layout(location = 1)in vec2 ex_UV;
-
-layout(location = 0) out vec4 out_Color;
-
-void main()
-{
- vec2 UV = vec2( ex_UV.x, ex_UV.y );
-#ifndef TARGET_API_VULKAN
- UV.y = 1.0 - UV.y;
-#endif
-
- vec4 Col0 = texture(g_tex2DTest0, UV);
- vec4 Col1 = texture(g_tex2DTest1, UV);
- vec4 Col2 = texture(g_tex2DTest2, UV);
- out_Color = vec4(Col0.x, Col1.y, Col2.z, 0.0);
-}
diff --git a/Tests/TestApp/assets/Shaders/RTTest/QuadVS_DX.hlsl b/Tests/TestApp/assets/Shaders/RTTest/QuadVS_DX.hlsl
deleted file mode 100644
index d47bb59..0000000
--- a/Tests/TestApp/assets/Shaders/RTTest/QuadVS_DX.hlsl
+++ /dev/null
@@ -1,21 +0,0 @@
-
-struct VSIn
-{
- float3 f3Position : ATTRIB0;
- float2 f2UV : ATTRIB1;
-};
-
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float2 f2UV : TEXCOORD;
-};
-
-VSOut main(VSIn In)
-{
- VSOut Out;
- Out.f4Position.xyz = In.f3Position;
- Out.f4Position.w = 1;
- Out.f2UV = In.f2UV;
- return Out;
-}
diff --git a/Tests/TestApp/assets/Shaders/RTTest/QuadVS_GL.glsl b/Tests/TestApp/assets/Shaders/RTTest/QuadVS_GL.glsl
deleted file mode 100644
index 77d984e..0000000
--- a/Tests/TestApp/assets/Shaders/RTTest/QuadVS_GL.glsl
+++ /dev/null
@@ -1,24 +0,0 @@
-
-layout(location = 0) in vec3 in_Position;
-layout(location = 1) in vec2 in_UV;
-
-layout(location = 1) out vec2 ex_UV;
-
-//To use any built-in input or output in the gl_PerVertex and
-//gl_PerFragment blocks in separable program objects, shader code must
-//redeclare those blocks prior to use.
-//
-// Declaring this block causes compilation error on NVidia GLES
-#ifndef GL_ES
-out gl_PerVertex
-{
- vec4 gl_Position;
-};
-#endif
-
-void main()
-{
- gl_Position.xyz = in_Position;
- gl_Position.w = 1.0;
- ex_UV = in_UV;
-}
diff --git a/Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_DX.hlsl b/Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_DX.hlsl
deleted file mode 100644
index c3e08bc..0000000
--- a/Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_DX.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float2 f2UV : TEXCOORD;
-};
-
-void main(VSOut In,
- out float4 Col0 : SV_Target0,
- out float4 Col1 : SV_Target1)
-{
- Col0 = float4( 0.5+0.5*cos(In.f2UV.x*3.1415*6.0), 0.0, 0.0, 0.0 );
- Col1 = float4( 0.0, 0.5+0.5*cos(In.f2UV.y*3.1415*8.0), 0.0, 0.0 );
-}
diff --git a/Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_GL.glsl b/Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_GL.glsl
deleted file mode 100644
index b673f11..0000000
--- a/Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_GL.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-
-layout(location = 1) in vec2 ex_UV;
-
-layout (location = 0) out vec4 out_Color0;
-layout (location = 1) out vec4 out_Color1;
-
-void main()
-{
- out_Color0 = vec4( 0.5+0.5*cos(ex_UV.x*3.1415*6.0), 0.0, 0.0, 0.0 );
- out_Color1 = vec4( 0.0, 0.5+0.5*cos(ex_UV.y*3.1415*8.0), 0.0, 0.0 );
-}
diff --git a/Tests/TestApp/assets/Shaders/SpriteDX.psh b/Tests/TestApp/assets/Shaders/SpriteDX.psh
deleted file mode 100644
index 4ec1d7b..0000000
--- a/Tests/TestApp/assets/Shaders/SpriteDX.psh
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Texture2D<float4> g_tex2DTest : register(t2);
-SamplerState g_tex2DTest_sampler : register(s3);
-
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float2 f2UV : UV;
-};
-
-float4 main(VSOut In) : SV_Target
-{
- return g_tex2DTest.SampleLevel(g_tex2DTest_sampler, In.f2UV, 0);
-}
diff --git a/Tests/TestApp/assets/Shaders/SpriteGL.psh b/Tests/TestApp/assets/Shaders/SpriteGL.psh
deleted file mode 100644
index f2bdd11..0000000
--- a/Tests/TestApp/assets/Shaders/SpriteGL.psh
+++ /dev/null
@@ -1,11 +0,0 @@
-// Fragment Shader – file "minimal.frag"
-
-layout(location = 1)in vec2 in_UV;
-uniform sampler2D g_tex2DTest;
-
-layout(location = 0) out vec4 out_Color;
-
-void main(void)
-{
- out_Color = textureLod(g_tex2DTest, in_UV, 0.0);
-}
diff --git a/Tests/TestApp/assets/Shaders/TessTestDX.psh b/Tests/TestApp/assets/Shaders/TessTestDX.psh
deleted file mode 100644
index 9686129..0000000
--- a/Tests/TestApp/assets/Shaders/TessTestDX.psh
+++ /dev/null
@@ -1,18 +0,0 @@
-struct VSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-struct GSOut
-{
- VSOutput VSOut;
-};
-
-
-
-void main(GSOut In,
- out float4 Color : SV_Target)
-{
- Color = float4(In.VSOut.f3Color,1.0);
-}
diff --git a/Tests/TestApp/assets/Shaders/TessTestQuadDX.dsh b/Tests/TestApp/assets/Shaders/TessTestQuadDX.dsh
deleted file mode 100644
index 634ac31..0000000
--- a/Tests/TestApp/assets/Shaders/TessTestQuadDX.dsh
+++ /dev/null
@@ -1,32 +0,0 @@
-
-struct DSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-
-struct HS_CONSTANT_DATA_OUTPUT
-{
- float Edges[4] : SV_TessFactor;
- float Inside[2] : SV_InsideTessFactor;
-};
-
-struct HSOutput
-{
- float4 Position : POS;
- float3 Color : COL;
-};
-
-[domain("quad")]
-/* partitioning = fractional_even ,
- outputtopology = triangle_cw */
-void main( HS_CONSTANT_DATA_OUTPUT Input,
- float2 QuadUV : SV_DomainLocation,
- OutputPatch<HSOutput, 1> QuadPatch,
- out DSOutput Out)
-{
- Out.f4Position.xy = QuadPatch[0].Position.xy + QuadUV.xy * 0.2;
- Out.f4Position.zw = QuadPatch[0].Position.zw;
- Out.f3Color = frac( (QuadPatch[0].Color + float3(QuadUV.xy, 1.0)) * float3(4121.35f, 8232.25f, 9124.42f) );
-}
diff --git a/Tests/TestApp/assets/Shaders/TessTestQuadDX.hsh b/Tests/TestApp/assets/Shaders/TessTestQuadDX.hsh
deleted file mode 100644
index 33e24a3..0000000
--- a/Tests/TestApp/assets/Shaders/TessTestQuadDX.hsh
+++ /dev/null
@@ -1,46 +0,0 @@
-
-struct VSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-// Output patch constant data.
-struct HS_CONSTANT_DATA_OUTPUT
-{
- float Edges[4] : SV_TessFactor;
-};
-
-HS_CONSTANT_DATA_OUTPUT ConstantHS( InputPatch<VSOutput, 1> p,
- uint BlockID : SV_PrimitiveID,
- out float Inside[2] : SV_InsideTessFactor)
-{
- HS_CONSTANT_DATA_OUTPUT Factors;
- Factors.Edges[0] = 2.5 + float(BlockID);
- Factors.Edges[1] = 4.8 + frac(p[0].f4Position.x*223.145);
- Factors.Edges[2] = 5.9 + frac(p[0].f4Position.y*142.512);
- Factors.Edges[3] = 7.5 - float(BlockID);
- Inside[0] = 6.2 + p[0].f4Position.x*3.4;
- Inside[1] = 7.3 + p[0].f4Position.y*1.4;
- return Factors;
-}
-
-struct HSOutput
-{
- float4 Position : POS;
- float3 Color : COL;
-};
-
-[domain("quad")]
-[partitioning("fractional_even")]
-[outputtopology("triangle_cw")]
-[outputcontrolpoints(1)]
-[patchconstantfunc("ConstantHS")]
-[maxtessfactor( (float)(32.f+2.f) )]
-HSOutput main(InputPatch<VSOutput, 1> inputPatch, uint uCPID : SV_OutputControlPointID)
-{
- HSOutput Out;
- Out.Position = inputPatch[uCPID].f4Position;
- Out.Color = inputPatch[uCPID].f3Color;
- return Out;
-} \ No newline at end of file
diff --git a/Tests/TestApp/assets/Shaders/TessTestQuadDX.vsh b/Tests/TestApp/assets/Shaders/TessTestQuadDX.vsh
deleted file mode 100644
index 86042cc..0000000
--- a/Tests/TestApp/assets/Shaders/TessTestQuadDX.vsh
+++ /dev/null
@@ -1,24 +0,0 @@
-
-struct VSIn
-{
- uint uiVertexId : SV_VertexID;
-};
-
-struct VSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-void main(VSIn In,
- out VSOutput Out)
-{
- float4 Positions[2];
- Positions[0] = float4(-0.65,0.4,0.0,1.0);
- Positions[1] = float4(-0.65,0.65,0.0,1.0);
- float3 Color[2];
- Color[0] = float3(1.0,0.0,0.0);
- Color[1] = float3(0.0,1.0,0.0);
- Out.f4Position = Positions[In.uiVertexId];
- Out.f3Color = Color[In.uiVertexId];
-}
diff --git a/Tests/TestApp/assets/Shaders/TessTestTriDX.dsh b/Tests/TestApp/assets/Shaders/TessTestTriDX.dsh
deleted file mode 100644
index 1aa899e..0000000
--- a/Tests/TestApp/assets/Shaders/TessTestTriDX.dsh
+++ /dev/null
@@ -1,32 +0,0 @@
-
-struct DSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-
-struct HS_CONSTANT_DATA_OUTPUT
-{
- float Edges[3] : SV_TessFactor;
- float Inside : SV_InsideTessFactor;
-};
-
-struct HSOutput
-{
- float4 Position : POS;
- float3 Color : COL;
-};
-
-[domain("tri")]
-/* partitioning = fractional_odd ,
- outputtopology = triangle_cw */
-void main( HS_CONSTANT_DATA_OUTPUT Input,
- float3 QuadUV : SV_DomainLocation,
- OutputPatch<HSOutput, 1> QuadPatch,
- out DSOutput Out)
-{
- Out.f4Position.xy = QuadPatch[0].Position.xy + QuadUV.x * float2(-0.15, 0.0) + QuadUV.y * float2(0.0, 0.15) + QuadUV.z * float2(+0.15, 0.0);
- Out.f4Position.zw = QuadPatch[0].Position.zw;
- Out.f3Color = frac( (QuadPatch[0].Color + QuadUV.xyz * float3(4121.35f, 8232.25f, 9124.42f) ) );
-}
diff --git a/Tests/TestApp/assets/Shaders/TessTestTriDX.hsh b/Tests/TestApp/assets/Shaders/TessTestTriDX.hsh
deleted file mode 100644
index 6280ebd..0000000
--- a/Tests/TestApp/assets/Shaders/TessTestTriDX.hsh
+++ /dev/null
@@ -1,44 +0,0 @@
-
-struct VSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-// Output patch constant data.
-struct HS_CONSTANT_DATA_OUTPUT
-{
- float Edges[3] : SV_TessFactor;
-};
-
-HS_CONSTANT_DATA_OUTPUT ConstantHS( InputPatch<VSOutput, 1> p,
- uint BlockID : SV_PrimitiveID,
- out float Inside : SV_InsideTessFactor)
-{
- HS_CONSTANT_DATA_OUTPUT Factors;
- Factors.Edges[0] = 2.5 + float(BlockID);
- Factors.Edges[1] = 4.5 + p[0].f4Position.x * 1.53;
- Factors.Edges[2] = 5.5 - p[0].f4Position.y * 2.53;
- Inside = 6.2 + p[0].f4Position.x * 1.53;
- return Factors;
-}
-
-struct HSOutput
-{
- float4 Position : POS;
- float3 Color : COL;
-};
-
-[domain("tri")]
-[partitioning("fractional_odd")]
-[outputtopology("triangle_cw")]
-[outputcontrolpoints(1)]
-[patchconstantfunc("ConstantHS")]
-[maxtessfactor( (float)(32.f+2.f) )]
-HSOutput main(InputPatch<VSOutput, 1> inputPatch, uint uCPID : SV_OutputControlPointID)
-{
- HSOutput Out;
- Out.Position = inputPatch[uCPID].f4Position;
- Out.Color = inputPatch[uCPID].f3Color;
- return Out;
-} \ No newline at end of file
diff --git a/Tests/TestApp/assets/Shaders/TessTestTriDX.vsh b/Tests/TestApp/assets/Shaders/TessTestTriDX.vsh
deleted file mode 100644
index c807662..0000000
--- a/Tests/TestApp/assets/Shaders/TessTestTriDX.vsh
+++ /dev/null
@@ -1,24 +0,0 @@
-
-struct VSIn
-{
- uint uiVertexId : SV_VertexID;
-};
-
-struct VSOutput
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-void main(VSIn In,
- out VSOutput Out)
-{
- float4 Positions[2];
- Positions[0] = float4(-0.5,0.15,0.0,1.0);
- Positions[1] = float4(-0.65,0.65,0.0,1.0);
- float3 Color[2];
- Color[0] = float3(1.0,0.0,0.0);
- Color[1] = float3(0.0,1.0,0.0);
- Out.f4Position = Positions[In.uiVertexId];
- Out.f3Color = Color[In.uiVertexId];
-}
diff --git a/Tests/TestApp/assets/Shaders/TextureIntTestDX.psh b/Tests/TestApp/assets/Shaders/TextureIntTestDX.psh
deleted file mode 100644
index 4dfc67f..0000000
--- a/Tests/TestApp/assets/Shaders/TextureIntTestDX.psh
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Texture2D<DATA_TYPE> g_tex2DTest : register(t4);
-
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float2 f2UV : UV;
-};
-
-
-float4 main(VSOut In) : SV_Target
-{
- float Width, Height;
- g_tex2DTest.GetDimensions(Width, Height);
- float2 IJ = In.f2UV * float2(Width, Height);
- float4 Color0 = g_tex2DTest.Load( int3(IJ, 0) ) / 127.f;
- float4 Color1 = g_tex2DTest.Load( int3(IJ/4, 2) ) / 127.f;
- float4 Color2 = g_tex2DTest.Load( int3(IJ/16, 4) ) / 127.f;
- float4 Color3 = g_tex2DTest.Load( int3(IJ/32, 5) ) / 127.f;
- if( In.f2UV.x < 0.5 && In.f2UV.y < 0.5 )
- return Color0;
- else if( In.f2UV.x > 0.5 && In.f2UV.y < 0.5 )
- return Color1;
- else if( In.f2UV.x < 0.5 && In.f2UV.y > 0.5 )
- return Color2;
- else
- return Color3;
-}
diff --git a/Tests/TestApp/assets/Shaders/TextureIntTestGL.psh b/Tests/TestApp/assets/Shaders/TextureIntTestGL.psh
deleted file mode 100644
index 23c3532..0000000
--- a/Tests/TestApp/assets/Shaders/TextureIntTestGL.psh
+++ /dev/null
@@ -1,33 +0,0 @@
-// Fragment Shader – file "minimal.frag"
-
-layout(location = 1)in vec2 in_UV;
-uniform SAMPLER_TYPE g_tex2DTest;
-
-layout(location = 0) out vec4 out_Color;
-
-void main(void)
-{
- vec2 TexSize;
-
- TexSize = vec2(textureSize(g_tex2DTest, 0));
- vec4 texel0 = vec4(texelFetch(g_tex2DTest, ivec2(in_UV*TexSize), 0));
-
- TexSize = vec2(textureSize(g_tex2DTest, 2));
- vec4 texel1 = vec4(texelFetch(g_tex2DTest, ivec2(in_UV*TexSize), 2));
-
- TexSize = vec2(textureSize(g_tex2DTest, 4));
- vec4 texel2 = vec4(texelFetch(g_tex2DTest, ivec2(in_UV*TexSize), 4));
-
- TexSize = vec2(textureSize(g_tex2DTest, 5));
- vec4 texel3 = vec4(texelFetch(g_tex2DTest, ivec2(in_UV*TexSize), 5));
-
- if( in_UV.x < 0.5 && in_UV.y < 0.5 )
- out_Color = texel0 / 127.f;
- else if( in_UV.x > 0.5 && in_UV.y < 0.5 )
- out_Color = texel1 / 127.f;
- else if( in_UV.x < 0.5 && in_UV.y > 0.5 )
- out_Color = texel2 / 127.f;
- else
- out_Color = texel3 / 127.f;
-}
-
diff --git a/Tests/TestApp/assets/Shaders/TextureTestDX.psh b/Tests/TestApp/assets/Shaders/TextureTestDX.psh
deleted file mode 100644
index 0d8e57e..0000000
--- a/Tests/TestApp/assets/Shaders/TextureTestDX.psh
+++ /dev/null
@@ -1,26 +0,0 @@
-
-Texture2D<float4> g_tex2DTest : register(t2);
-SamplerState g_tex2DTest_sampler : register(s3);
-
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float2 f2UV : UV;
-};
-
-
-float4 main(VSOut In) : SV_Target
-{
- float4 Color0 = g_tex2DTest.SampleLevel(g_tex2DTest_sampler, In.f2UV, 0);
- float4 Color1 = g_tex2DTest.SampleLevel(g_tex2DTest_sampler, In.f2UV, 2);
- float4 Color2 = g_tex2DTest.SampleLevel(g_tex2DTest_sampler, In.f2UV, 4);
- float4 Color3 = g_tex2DTest.SampleLevel(g_tex2DTest_sampler, In.f2UV, 5);
- if( In.f2UV.x < 0.5 && In.f2UV.y < 0.5 )
- return Color0;
- else if( In.f2UV.x > 0.5 && In.f2UV.y < 0.5 )
- return Color1;
- else if( In.f2UV.x < 0.5 && In.f2UV.y > 0.5 )
- return Color2;
- else
- return Color3;
-}
diff --git a/Tests/TestApp/assets/Shaders/TextureTestDX.vsh b/Tests/TestApp/assets/Shaders/TextureTestDX.vsh
deleted file mode 100644
index 78e6fd5..0000000
--- a/Tests/TestApp/assets/Shaders/TextureTestDX.vsh
+++ /dev/null
@@ -1,22 +0,0 @@
-
-struct VSIn
-{
- float3 f3Position : ATTRIB0;
- float2 f2UV : ATTRIB1;
-};
-
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float2 f2UV : UV;
-};
-
-VSOut main(VSIn In)
-{
- VSOut Out;
- Out.f4Position.xyz = In.f3Position;
- //Out.f4Position.x += In.fOffset;
- Out.f4Position.w = 1;
- Out.f2UV = In.f2UV;
- return Out;
-}
diff --git a/Tests/TestApp/assets/Shaders/TextureTestGL.psh b/Tests/TestApp/assets/Shaders/TextureTestGL.psh
deleted file mode 100644
index 3f84f11..0000000
--- a/Tests/TestApp/assets/Shaders/TextureTestGL.psh
+++ /dev/null
@@ -1,22 +0,0 @@
-// Fragment Shader – file "minimal.frag"
-
-layout(location = 1)in vec2 in_UV;
-uniform sampler2D g_tex2DTest;
-
-layout(location = 0) out vec4 out_Color;
-
-void main(void)
-{
- vec4 Color0 = textureLod(g_tex2DTest, in_UV, 0.0);
- vec4 Color1 = textureLod(g_tex2DTest, in_UV, 2.0);
- vec4 Color2 = textureLod(g_tex2DTest, in_UV, 4.0);
- vec4 Color3 = textureLod(g_tex2DTest, in_UV, 5.0);
- if( in_UV.x < 0.5 && in_UV.y < 0.5 )
- out_Color = Color0;
- else if( in_UV.x > 0.5 && in_UV.y < 0.5 )
- out_Color = Color1;
- else if( in_UV.x < 0.5 && in_UV.y > 0.5 )
- out_Color = Color2;
- else
- out_Color = Color3;
-}
diff --git a/Tests/TestApp/assets/Shaders/TextureTestGL.vsh b/Tests/TestApp/assets/Shaders/TextureTestGL.vsh
deleted file mode 100644
index e1faef7..0000000
--- a/Tests/TestApp/assets/Shaders/TextureTestGL.vsh
+++ /dev/null
@@ -1,25 +0,0 @@
-// Vertex Shader – file "minimal.vert"
-
-layout(location = 0) in vec3 in_Position;
-layout(location = 1) in vec2 in_UV;
-
-layout(location = 1) out vec2 out_UV;
-
-
-//To use any built-in input or output in the gl_PerVertex and
-//gl_PerFragment blocks in separable program objects, shader code must
-//redeclare those blocks prior to use.
-//
-// Declaring this block causes compilation error on NVidia GLES
-#ifndef GL_ES
-out gl_PerVertex
-{
- vec4 gl_Position;
-};
-#endif
-
-void main(void)
-{
- out_UV = in_UV;
- gl_Position = vec4(in_Position, 1.0);
-}
diff --git a/Tests/TestApp/assets/Shaders/UniformBufferDX.psh b/Tests/TestApp/assets/Shaders/UniformBufferDX.psh
deleted file mode 100644
index fa0d12e..0000000
--- a/Tests/TestApp/assets/Shaders/UniformBufferDX.psh
+++ /dev/null
@@ -1,21 +0,0 @@
-cbuffer cbTestBlock : register(b5)
-{
- float4 g_f4Color;
-}
-
-cbuffer cbTestBlock2 : register(b3)
-{
- float4 g_f4Color2;
-}
-
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-
-float4 main(VSOut In) : SV_Target
-{
- return float4(In.f3Color,1.0) * g_f4Color + g_f4Color2;
-}
diff --git a/Tests/TestApp/assets/Shaders/UniformBufferGL.psh b/Tests/TestApp/assets/Shaders/UniformBufferGL.psh
deleted file mode 100644
index 267e678..0000000
--- a/Tests/TestApp/assets/Shaders/UniformBufferGL.psh
+++ /dev/null
@@ -1,26 +0,0 @@
-// Fragment Shader – file "minimal.frag"
-
-layout(location = 1)in vec3 ex_Color;
-
-uniform cbTestBlock2
-{
- vec4 Color;
-}g_TestBlock2;
-
-uniform cbTestBlock
-{
- vec4 Color;
-}g_TestBlock;
-
-layout(location = 0) out vec4 out_Color;
-
-void main(void)
-{
- out_Color = g_TestBlock.Color * vec4(ex_Color,1.0) + g_TestBlock2.Color;
-
- // Try replacing the above with the following:
- //vec3 tmp_Color;
- //tmp_Color = ex_Color.rrr;
- //out_Color = vec4(tmp_Color,1.0);
-}
-
diff --git a/Tests/TestApp/assets/Shaders/minimalDX.psh b/Tests/TestApp/assets/Shaders/minimalDX.psh
deleted file mode 100644
index fe51cd1..0000000
--- a/Tests/TestApp/assets/Shaders/minimalDX.psh
+++ /dev/null
@@ -1,11 +0,0 @@
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-
-float4 main(VSOut In) : SV_Target
-{
- return float4(In.f3Color,1);
-}
diff --git a/Tests/TestApp/assets/Shaders/minimalDX.vsh b/Tests/TestApp/assets/Shaders/minimalDX.vsh
deleted file mode 100644
index a8577fd..0000000
--- a/Tests/TestApp/assets/Shaders/minimalDX.vsh
+++ /dev/null
@@ -1,23 +0,0 @@
-
-struct VSIn
-{
- float3 f3Position : ATTRIB0;
- float3 f3Color : ATTRIB1;
- //float fOffset : ATTRIB2;
-};
-
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-VSOut main(VSIn In)
-{
- VSOut Out;
- Out.f4Position.xyz = In.f3Position;
- //Out.f4Position.x += In.fOffset;
- Out.f4Position.w = 1;
- Out.f3Color = In.f3Color;
- return Out;
-}
diff --git a/Tests/TestApp/assets/Shaders/minimalGL.psh b/Tests/TestApp/assets/Shaders/minimalGL.psh
deleted file mode 100644
index 8aafaa2..0000000
--- a/Tests/TestApp/assets/Shaders/minimalGL.psh
+++ /dev/null
@@ -1,16 +0,0 @@
-// Fragment Shader – file "minimal.frag"
-
-layout(location = 1) in vec3 ex_Color;
-
-layout(location = 0) out vec4 out_Color;
-
-void main(void)
-{
- out_Color = vec4(ex_Color,1.0);
-
- // Try replacing the above with the following:
- //vec3 tmp_Color;
- //tmp_Color = ex_Color.rrr;
- //out_Color = vec4(tmp_Color,1.0);
-}
-
diff --git a/Tests/TestApp/assets/Shaders/minimalGL.vsh b/Tests/TestApp/assets/Shaders/minimalGL.vsh
deleted file mode 100644
index 1ef7dbc..0000000
--- a/Tests/TestApp/assets/Shaders/minimalGL.vsh
+++ /dev/null
@@ -1,35 +0,0 @@
-// Vertex Shader – file "minimal.vert"
-
-layout(location = 0) in vec3 in_Position;
-layout(location = 1) in vec3 in_Color;
-
-layout(location = 1) out vec3 ex_Color;
-
-uniform cbTestBlock3
-{
- vec4 Scale;
-}g_TestBlock3;
-
-uniform cbTestBlock4
-{
- vec4 Scale;
-}g_TestBlock4;
-
-//To use any built-in input or output in the gl_PerVertex and
-//gl_PerFragment blocks in separable program objects, shader code must
-//redeclare those blocks prior to use.
-//
-// Declaring this block causes compilation error on NVidia GLES
-#ifndef GL_ES
-out gl_PerVertex
-{
- vec4 gl_Position;
-};
-#endif
-
-void main(void)
-{
- ex_Color = in_Color;
- gl_Position = vec4(in_Position.x * g_TestBlock3.Scale.x, in_Position.y * g_TestBlock4.Scale.y, in_Position.z, 1.0);
-}
-
diff --git a/Tests/TestApp/assets/Shaders/minimalInstDX.vsh b/Tests/TestApp/assets/Shaders/minimalInstDX.vsh
deleted file mode 100644
index 1d0c2e3..0000000
--- a/Tests/TestApp/assets/Shaders/minimalInstDX.vsh
+++ /dev/null
@@ -1,23 +0,0 @@
-
-struct VSIn
-{
- float3 f3Position : ATTRIB0;
- float3 f3Color : ATTRIB1;
- float2 f2Offset : ATTRIB2;
-};
-
-struct VSOut
-{
- float4 f4Position : SV_Position;
- float3 f3Color : COLOR;
-};
-
-VSOut main(VSIn In)
-{
- VSOut Out;
- Out.f4Position.xyz = In.f3Position;
- Out.f4Position.xy += In.f2Offset;
- Out.f4Position.w = 1;
- Out.f3Color = In.f3Color;
- return Out;
-}
diff --git a/Tests/TestApp/assets/Shaders/minimalInstGL.vsh b/Tests/TestApp/assets/Shaders/minimalInstGL.vsh
deleted file mode 100644
index 948b55d..0000000
--- a/Tests/TestApp/assets/Shaders/minimalInstGL.vsh
+++ /dev/null
@@ -1,27 +0,0 @@
-// Vertex Shader – file "minimal.vert"
-
-layout(location = 0) in vec3 in_Position;
-layout(location = 1) in vec3 in_Color;
-layout(location = 2) in vec2 in_Offset;
-
-layout(location = 1) out vec3 ex_Color;
-
-//To use any built-in input or output in the gl_PerVertex and
-//gl_PerFragment blocks in separable program objects, shader code must
-//redeclare those blocks prior to use.
-//
-// Declaring this block causes compilation error on NVidia GLES
-#ifndef GL_ES
-out gl_PerVertex
-{
- vec4 gl_Position;
-};
-#endif
-
-
-void main(void)
-{
- ex_Color = in_Color;
- gl_Position = vec4(in_Position + vec3(in_Offset.xy,0.0), 1.0);
-}
-
diff --git a/Tests/TestApp/assets/TestComputeShaders.lua b/Tests/TestApp/assets/TestComputeShaders.lua
deleted file mode 100644
index 863c8a5..0000000
--- a/Tests/TestApp/assets/TestComputeShaders.lua
+++ /dev/null
@@ -1,372 +0,0 @@
--- Compute shader test script
-
-ThreadGroupSizeX = 16
-ThreadGroupSizeY = 8
-
-TestTexture = Texture.Create{
- Name = "Compute Shader Test Texture",
- Type = "RESOURCE_DIM_TEX_2D", Width = 256, Height = 256,
- Format = "TEX_FORMAT_RGBA8_UNORM",
- MipLevels = 7,
- SampleCount = 1,
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_SHADER_RESOURCE", "BIND_UNORDERED_ACCESS"}
-}
-
-UAVs = { [0] = TestTexture:CreateView{ ViewType = "TEXTURE_VIEW_UNORDERED_ACCESS", AccessFlags = "UAV_ACCESS_FLAG_WRITE"} }
-for mip = 1, TestTexture.MipLevels-1 do
- UAVs[mip] = TestTexture:CreateView{ ViewType = "TEXTURE_VIEW_UNORDERED_ACCESS", MostDetailedMip = mip, AccessFlags = "UAV_ACCESS_FLAG_WRITE" }
- assert(UAVs[mip].AccessFlags[1] == "UAV_ACCESS_FLAG_WRITE" )
-end
-
-LinearSampler = Sampler.Create{
- MinFilter = "FILTER_TYPE_LINEAR",
- MagFilter = "FILTER_TYPE_LINEAR",
- MipFilter = "FILTER_TYPE_LINEAR"
-}
-
-TestTexture:GetDefaultView("TEXTURE_VIEW_SHADER_RESOURCE"):SetSampler(LinearSampler)
-
-PositionsBuffer = Buffer.Create(
- {
- Name = "Position buffer",
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_VERTEX_BUFFER", "BIND_UNORDERED_ACCESS"},
- Mode = "BUFFER_MODE_FORMATTED",
- ElementByteStride = 16,
- uiSizeInBytes = (4 + 8) * 4 * 4
- }
-)
-PositionsBufferUAV = PositionsBuffer:CreateView
-{
- Name = "bufPositions UAV",
- ViewType = "BUFFER_VIEW_UNORDERED_ACCESS",
- Format = {ValueType = "VT_FLOAT32", NumComponents = 4}
-}
-
-
-TexcoordBuffer = Buffer.Create(
- {
- Name = "Texcoord buffer",
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_VERTEX_BUFFER", "BIND_UNORDERED_ACCESS"},
- Mode = "BUFFER_MODE_FORMATTED",
- ElementByteStride = 16,
- uiSizeInBytes = (4 + 8) * 4 * 4
- }
-)
-
-
-
-OffsetsBuffer = Buffer.Create(
- {
- Name = "Offsets buffer",
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_UNORDERED_ACCESS", "BIND_SHADER_RESOURCE"},
- --uiSizeInBytes = 64,
- Mode = "BUFFER_MODE_FORMATTED",
- ElementByteStride = 16
- },
- "VT_FLOAT32",
- {0.03,0,0,0, 0,0.03,0,0, 0.03,0.03,0,0, -0.03,-0.03,0,0}
-)
-OffsetsBufferSRV = OffsetsBuffer:CreateView
-{
- Name = "Offsets UAV",
- ViewType = "BUFFER_VIEW_SHADER_RESOURCE",
- Format = {ValueType = "VT_FLOAT32", NumComponents = 4}
-}
-
-
-IndexBuffer = Buffer.Create(
- {
- Name = "Index buffer",
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_INDEX_BUFFER", "BIND_UNORDERED_ACCESS"},
- Mode = "BUFFER_MODE_FORMATTED",
- ElementByteStride = 16
- },
- "VT_UINT32",
- {0,0,0,0}
-)
-IndexBufferUAV = IndexBuffer:CreateView
-{
- Name = "bufIndices UAV",
- ViewType = "BUFFER_VIEW_UNORDERED_ACCESS",
- Format = {ValueType = "VT_UINT32", NumComponents = 4}
-}
-
-
-IndirectDrawArgsBuffer = Buffer.Create(
- {
- Name = "Indirect Draw Args Buffer",
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_INDIRECT_DRAW_ARGS", "BIND_UNORDERED_ACCESS"},
- ElementByteStride = 16,
- Mode = "BUFFER_MODE_FORMATTED",
- uiSizeInBytes = 32
- }
-)
-IndirectDrawArgsBufferUAV = IndirectDrawArgsBuffer:CreateView
-{
- Name = "bufIndirectDrawArgs UAV",
- ViewType = "BUFFER_VIEW_UNORDERED_ACCESS",
- Format = {ValueType = "VT_UINT32", NumComponents = 4}
-}
-
-
-IndirectDispatchArgsBuffer = Buffer.Create(
- {
- Name = "Indirect Dispatch Args Buffer",
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_INDIRECT_DRAW_ARGS", "BIND_UNORDERED_ACCESS"},
- ElementByteStride = 16,
- Mode = "BUFFER_MODE_FORMATTED",
- uiSizeInBytes = 64
- }
-)
-IndirectDispatchArgsBufferUAV = IndirectDispatchArgsBuffer:CreateView
-{
- Name = "bufIndirectDispatchArgs UAV",
- ViewType = "BUFFER_VIEW_UNORDERED_ACCESS",
- Format = {ValueType = "VT_UINT32", NumComponents = 4}
-}
-
-TexcoordDataOffset = 2*4*4
-TexCoordUAV = TexcoordBuffer:CreateView
-{
- ViewType = "BUFFER_VIEW_UNORDERED_ACCESS",
- ByteOffset = TexcoordDataOffset,
- ByteWidth = 4*4*4,
- Format = {ValueType = "VT_FLOAT32", NumComponents = 4}
-}
-
-ResMapping = ResourceMapping.Create{
- {Name = "g_tex2DTest", pObject = TestTexture:GetDefaultView("TEXTURE_VIEW_SHADER_RESOURCE")},
- {Name = "bufPositions", pObject = PositionsBufferUAV },
- {Name = "bufTexcoord", pObject = TexCoordUAV},
- {Name = "bufIndices", pObject = IndexBufferUAV},
- {Name = "bufIndirectDrawArgs", pObject = IndirectDrawArgsBufferUAV },
- {Name = "bufIndirectDispatchArgs", pObject = IndirectDispatchArgsBufferUAV },
- {Name = "Offsets", pObject = OffsetsBufferSRV}
-}
-
-function GetShaderPath( ShaderName, ShaderExt, GLESSpecial )
-
- local ProcessedShaderPath = ""
- if Constants.DeviceType == "D3D11" or Constants.DeviceType == "D3D12" then
- ProcessedShaderPath = "Shaders\\" .. ShaderName .. "DX." .. ShaderExt
- elseif Constants.DeviceType == "OpenGL" or Constants.DeviceType == "Vulkan" or not GLESSpecial then
- ProcessedShaderPath = "Shaders\\" .. ShaderName .. "GL." .. ShaderExt
- else
- ProcessedShaderPath = "Shaders\\" .. ShaderName .. "GLES." .. ShaderExt
- end
-
- return ProcessedShaderPath
-end
-
-FillTextureCS = Shader.Create{
- FilePath = GetShaderPath("CSTest\\FillTexture", "csh"),
- UseCombinedTextureSamplers = true,
- Desc =
- {
- ShaderType = "SHADER_TYPE_COMPUTE"
- }
-}
-
-UpdateVertBuffCS = Shader.Create{
- FilePath = GetShaderPath("CSTest\\UpdateVertBuff", "csh", true),
- UseCombinedTextureSamplers = true,
- Desc = {ShaderType = "SHADER_TYPE_COMPUTE"}
-}
-
-UpdateIndBuffCS = Shader.Create{
- FilePath = GetShaderPath("CSTest\\UpdateIndBuff", "csh"),
- UseCombinedTextureSamplers = true,
- Desc = {ShaderType = "SHADER_TYPE_COMPUTE"}
-}
-
-UpdateDrawArgsBuffCS = Shader.Create{
- FilePath = GetShaderPath("CSTest\\UpdateDrawArgsBuff", "csh"),
- UseCombinedTextureSamplers = true,
- Desc = {ShaderType = "SHADER_TYPE_COMPUTE"}
-}
-
-UpdateDispatchArgsBuffCS = Shader.Create{
- FilePath = GetShaderPath("CSTest\\UpdateDispatchArgsBuff", "csh"),
- UseCombinedTextureSamplers = true,
- Desc = {ShaderType = "SHADER_TYPE_COMPUTE"}
-}
-
-RenderVS = Shader.Create{
- FilePath = GetShaderPath("TextureTest", "vsh"),
- UseCombinedTextureSamplers = true,
- Desc = { ShaderType = "SHADER_TYPE_VERTEX" }
-}
-
-RenderPS = Shader.Create{
- FilePath = GetShaderPath("TextureTest", "psh"),
- UseCombinedTextureSamplers = true,
- Desc = { ShaderType = "SHADER_TYPE_PIXEL" }
-}
-
-FillTexturePSO = PipelineState.Create
-{
- Name = "FillTexturePSO",
- ResourceLayout =
- {
- Variables = {{ShaderStages = "SHADER_TYPE_COMPUTE", Name = "g_tex2DTestUAV", Type = "SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC"}}
- },
- IsComputePipeline=true,
- ComputePipeline =
- {
- pCS = FillTextureCS
- }
-}
-assert(FillTexturePSO.ResourceLayout.Variables[1].ShaderStages[1] == "SHADER_TYPE_COMPUTE");
-assert(FillTexturePSO.ResourceLayout.Variables[1].Name == "g_tex2DTestUAV");
-assert(FillTexturePSO.ResourceLayout.Variables[1].Type == "SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC");
-
-FillTextureSRB = FillTexturePSO:CreateShaderResourceBinding()
-
-UpdateVertBuffPSO = PipelineState.Create
-{
- Name = "UpdateVertBuffPSO",
- IsComputePipeline=true,
- ComputePipeline =
- {
- pCS = UpdateVertBuffCS
- }
-}
-UpdateVertBuffSRB = UpdateVertBuffPSO:CreateShaderResourceBinding()
-
-UpdateIndBuffPSO = PipelineState.Create
-{
- Name = "UpdateIndBuffPSO",
- IsComputePipeline=true,
- ComputePipeline =
- {
- pCS = UpdateIndBuffCS
- }
-}
-UpdateIndBuffSRB = UpdateIndBuffPSO:CreateShaderResourceBinding()
-
-UpdateDrawArgsBuffPSO = PipelineState.Create
-{
- Name = "UpdateDrawArgsBuffPSO",
- IsComputePipeline=true,
- ComputePipeline =
- {
- pCS = UpdateDrawArgsBuffCS
- }
-}
-UpdateDrawArgsBuffSRB = UpdateDrawArgsBuffPSO:CreateShaderResourceBinding()
-
-UpdateDispatchArgsBuffPSO = PipelineState.Create
-{
- Name = "UpdateDispatchArgsBuffPSO",
- IsComputePipeline=true,
- ComputePipeline =
- {
- pCS = UpdateDispatchArgsBuffCS
- }
-}
-UpdateDispatchArgsBuffSRB = UpdateDispatchArgsBuffPSO:CreateShaderResourceBinding()
-
-RenderPSO = PipelineState.Create
-{
- Name = "CS Test - Render PSO",
- GraphicsPipeline =
- {
- RasterizerDesc =
- {
- FillMode = "FILL_MODE_SOLID",
- CullMode = "CULL_MODE_NONE"
- },
- DepthStencilDesc = {DepthEnable = false},
- pVS = RenderVS,
- pPS = RenderPS,
- InputLayout =
- {
- { InputIndex = 0, BufferSlot = 0, NumComponents = 3, ValueType = "VT_FLOAT32", IsNormalized = false, Stride = 4*4},
- { InputIndex = 1, BufferSlot = 1, NumComponents = 2, ValueType = "VT_FLOAT32", IsNormalized = false, Stride = 4*4}
- },
- RTVFormats = {extBackBufferFormat},
- DSVFormat = extDepthBufferFormat,
- PrimitiveTopology = "PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"
- }
-}
-RenderPSO:BindStaticResources({"SHADER_TYPE_VERTEX", "SHADER_TYPE_PIXEL"}, ResMapping, {"BIND_SHADER_RESOURCES_VERIFY_ALL_RESOLVED"})
-RenderSRB = RenderPSO:CreateShaderResourceBinding()
-
-UpdateVertBuffPSO:BindStaticResources("SHADER_TYPE_COMPUTE", ResMapping, {"BIND_SHADER_RESOURCES_VERIFY_ALL_RESOLVED", "BIND_SHADER_RESOURCES_UPDATE_STATIC"} )
-UpdateIndBuffPSO:BindStaticResources("SHADER_TYPE_COMPUTE", ResMapping, {"BIND_SHADER_RESOURCES_VERIFY_ALL_RESOLVED", "BIND_SHADER_RESOURCES_UPDATE_ALL"})
-UpdateDrawArgsBuffPSO:BindStaticResources("SHADER_TYPE_COMPUTE", ResMapping, {"BIND_SHADER_RESOURCES_VERIFY_ALL_RESOLVED"})
-UpdateDispatchArgsBuffPSO:BindStaticResources("SHADER_TYPE_COMPUTE", ResMapping, {"BIND_SHADER_RESOURCES_VERIFY_ALL_RESOLVED"})
-
-FillTextureSRB:InitializeStaticResources()
-UpdateVertBuffSRB:InitializeStaticResources()
-UpdateIndBuffSRB:InitializeStaticResources()
-UpdateDrawArgsBuffSRB:InitializeStaticResources()
-UpdateDispatchArgsBuffSRB:InitializeStaticResources()
-RenderSRB:InitializeStaticResources()
-
-DrawAttrs = DrawAttribs.Create{
- IndexType = "VT_UINT32",
- pIndirectDrawAttribs = IndirectDrawArgsBuffer,
- IndirectAttribsBufferStateTransitionMode = "RESOURCE_STATE_TRANSITION_MODE_TRANSITION",
- Flags = {"DRAW_FLAG_VERIFY_ALL"}
-}
-
-
-
-function Draw()
- Context.SetPipelineState(RenderPSO)
- Context.TransitionShaderResources(RenderPSO, RenderSRB)
- Context.CommitShaderResources(RenderSRB)
- Context.SetVertexBuffers(PositionsBuffer, 0, TexcoordBuffer, TexcoordDataOffset, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION", "SET_VERTEX_BUFFERS_FLAG_RESET")
- Context.SetIndexBuffer(IndexBuffer, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION" )
- Context.Draw(DrawAttrs)
-end
-
-
-tex2DTestUAV = FillTextureSRB:GetVariableByName("SHADER_TYPE_COMPUTE", "g_tex2DTestUAV")
-
-function Dispatch()
-
- Context.SetPipelineState(FillTexturePSO)
-
- for Mip = 0, TestTexture.MipLevels-1 do
- local NumGroupsX = math.floor( (bit32.rshift(TestTexture.Width, Mip) + ThreadGroupSizeX - 1) / ThreadGroupSizeX )
- local NumGroupsY = math.floor( (bit32.rshift(TestTexture.Height, Mip) + ThreadGroupSizeX - 1) / ThreadGroupSizeY )
- tex2DTestUAV:Set(UAVs[Mip])
-
- Context.CommitShaderResources(FillTextureSRB, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION" )
-
- Context.DispatchCompute(NumGroupsX, NumGroupsY)
- end
-
- Context.SetPipelineState(UpdateDispatchArgsBuffPSO)
- Context.TransitionShaderResources(UpdateDispatchArgsBuffPSO, UpdateDispatchArgsBuffSRB)
- Context.CommitShaderResources(UpdateDispatchArgsBuffSRB)
- Context.DispatchCompute(1)
-
- Context.SetPipelineState(UpdateDrawArgsBuffPSO)
- Context.CommitShaderResources(UpdateDrawArgsBuffSRB, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.DispatchCompute(IndirectDispatchArgsBuffer, 16, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
-
- Context.SetPipelineState(UpdateIndBuffPSO)
- Context.TransitionShaderResources(UpdateIndBuffPSO, UpdateIndBuffSRB)
- Context.CommitShaderResources(UpdateIndBuffSRB)
- Context.DispatchCompute(1)
-
- Context.SetPipelineState(UpdateVertBuffPSO)
- Context.CommitShaderResources(UpdateVertBuffSRB, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.DispatchCompute(2)
-
- return Draw()
-end
-
-function Render()
- return Dispatch()
-end
diff --git a/Tests/TestApp/assets/TestRenderScripts.lua b/Tests/TestApp/assets/TestRenderScripts.lua
deleted file mode 100644
index bce79ae..0000000
--- a/Tests/TestApp/assets/TestRenderScripts.lua
+++ /dev/null
@@ -1,220 +0,0 @@
--- Test render scripts
-
-TestSampler = Sampler.Create{
- Name = "Test Sampler",
- MinFilter = "FILTER_TYPE_POINT",
- MagFilter = "FILTER_TYPE_LINEAR",
- MipFilter = "FILTER_TYPE_POINT",
- AddressU = "TEXTURE_ADDRESS_WRAP",
- AddressV = "TEXTURE_ADDRESS_MIRROR",
- AddressW = "TEXTURE_ADDRESS_CLAMP",
- MipLODBias = 2,
- MinLOD = 0.4,
- MaxLOD = 10,
- MaxAnisotropy = 6,
- ComparisonFunc = "COMPARISON_FUNC_GREATER_EQUAL",
- BorderColor = {r = 0.0, g = 0.0, b=0.0, a=1.0},
-}
-
-ErrorTestSampler = Sampler.Create
-{
- SomeUndefinedMember = Undefined,
- MinFilter = Undefined2
-}
-
-function GetShaderPath( ShaderName, ShaderExt )
-
- local ProcessedShaderPath = ""
- if Constants.DeviceType == "D3D11" or Constants.DeviceType == "D3D12" then
- ProcessedShaderPath = "Shaders\\" .. ShaderName .. "DX." .. ShaderExt
- else
- ProcessedShaderPath = "Shaders\\" .. ShaderName .. "GL." .. ShaderExt
- end
-
- return ProcessedShaderPath
-end
-
-MinimalVS = Shader.Create{
- FilePath = GetShaderPath("minimal", "vsh"),
- UseCombinedTextureSamplers = true,
- Desc = {
- ShaderType = "SHADER_TYPE_VERTEX",
- Name = "MinimalVS"
- }
-}
-
-MinimalInstVS = Shader.Create{
- FilePath = GetShaderPath("minimalInst", "vsh"),
- UseCombinedTextureSamplers = true,
- Desc = {
- ShaderType = "SHADER_TYPE_VERTEX",
- Name = "MinimalInstVS"
- }
-}
-
-UniformBufferPS = Shader.Create{
- FilePath = GetShaderPath("UniformBuffer", "psh"),
- UseCombinedTextureSamplers = true,
- Desc = {
- ShaderType = "SHADER_TYPE_PIXEL",
- Name = "UniformBufferPS"
- }
-}
-
-PSO = PipelineState.Create
-{
- Name = "Pipeline State",
- GraphicsPipeline =
- {
- DepthStencilDesc =
- {
- DepthEnable = false
- },
- RasterizerDesc =
- {
- CullMode = "CULL_MODE_NONE"
- },
- BlendDesc =
- {
- IndependentBlendEnable = false,
- RenderTargets = { {BlendEnable = false} }
- },
- InputLayout =
- {
- { InputIndex = 0, BufferSlot = 0, NumComponents = 3, ValueType = "VT_FLOAT32", IsNormalized = false},
- { InputIndex = 1, BufferSlot = 1, NumComponents = 4, ValueType = "VT_UINT8", IsNormalized = true},
- },
- PrimitiveTopology = "PRIMITIVE_TOPOLOGY_TRIANGLE_LIST",
- pVS = MinimalVS,
- pPS = UniformBufferPS,
- RTVFormats = extBackBufferFormat,
- DSVFormat = extDepthBufferFormat
- },
- SRBAllocationGranularity = 16
-}
-
-SRB = PSO:CreateShaderResourceBinding()
-SRB1 = PSO:CreateShaderResourceBinding()
-SRB2 = PSO:CreateShaderResourceBinding()
-SRB3 = PSO:CreateShaderResourceBinding()
-
-PSOInst = PipelineState.Create
-{
- Name = "Pipeline State",
- GraphicsPipeline =
- {
- DepthStencilDesc =
- {
- DepthEnable = false
- },
- RasterizerDesc =
- {
- CullMode = "CULL_MODE_NONE"
- },
- BlendDesc =
- {
- IndependentBlendEnable = false,
- RenderTargets = { {BlendEnable = false} }
- },
- InputLayout =
- {
- { InputIndex = 0, BufferSlot = 0, NumComponents = 3, ValueType = "VT_FLOAT32", IsNormalized = false, Stride = 4*3},
- { InputIndex = 1, BufferSlot = 1, NumComponents = 4, ValueType = "VT_UINT8", IsNormalized = true, Stride = 4*1},
- { InputIndex = 2, BufferSlot = 2, NumComponents = 2, ValueType = "VT_FLOAT32", IsNormalized = false, Frequency = "FREQUENCY_PER_INSTANCE"},
- },
- PrimitiveTopology = "PRIMITIVE_TOPOLOGY_TRIANGLE_LIST",
- pVS = MinimalInstVS,
- pPS = UniformBufferPS,
- RTVFormats = extBackBufferFormat,
- DSVFormat = extDepthBufferFormat
- }
-}
-SRBInst = PSOInst:CreateShaderResourceBinding()
-
-VertexBuffer1 = Buffer.Create(
- { BindFlags = "BIND_VERTEX_BUFFER" },
- "VT_FLOAT32",
- {-1.0, 3.0, 0.0,
- 3.0, -1.0, 0.0,
- -1.0, -1.0, 0.0}
-)
-
-VertexBuffer2 = Buffer.Create(
- { BindFlags = "BIND_VERTEX_BUFFER" },
- "VT_FLOAT32",
- {0.0, 0.0, 0.0,
- 0.0,-0.2, 0.0,
- 0.2, 0.0, 0.0}
-)
-
-ColorsBuffer1 = Buffer.Create(
- { BindFlags = "BIND_VERTEX_BUFFER" },
- "VT_UINT8",
- {127, 0, 0, 0,
- 0, 127, 0, 0,
- 0, 0, 127, 0}
-)
-
-ColorsBuffer2 = Buffer.Create(
- { BindFlags = "BIND_VERTEX_BUFFER" },
- "VT_UINT8",
- {255, 255, 0, 0,
- 0, 255, 255, 0,
- 255, 0, 255, 0 }
-)
-
-InstanceBuffer = Buffer.Create(
- { BindFlags = "BIND_VERTEX_BUFFER" },
- "VT_FLOAT32",
- {-0.3, 0.0, 0.0, 0.0, 0.3, -0.3}
-)
-
-IndexBuffer = Buffer.Create(
- { BindFlags = "BIND_INDEX_BUFFER" },
- "VT_UINT32",
- {0,1,2}
-)
-
-UnfiformBuffer1 = Buffer.Create(
- { Name = "Test Uniform Buffer",
- uiSizeInBytes = 16,
- BindFlags = "BIND_UNIFORM_BUFFER", Usage = "USAGE_DYNAMIC", CPUAccessFlags = "CPU_ACCESS_WRITE" }
-)
-
-ResMapping = ResourceMapping.Create{
- {Name = "cbTestBlock", pObject = UnfiformBuffer1}
-}
-
-
-function AddConstBufferToMapping(Name, NewConstBuff)
- ResMapping[Name] = NewConstBuff
-end
-
-function BindShaderResources()
- PSO:BindStaticResources({"SHADER_TYPE_VERTEX", "SHADER_TYPE_PIXEL"}, ResMapping)
- PSOInst:BindStaticResources({"SHADER_TYPE_VERTEX", "SHADER_TYPE_PIXEL"}, ResMapping)
- SRB:InitializeStaticResources(PSO)
- SRBInst:InitializeStaticResources()
-end
-
-
-function DrawTris(DrawAttrs)
-
- if( DrawAttrs.NumInstances == 1 ) then
- Context.SetPipelineState(PSO)
- Context.SetVertexBuffers(0, VertexBuffer1, 0, ColorsBuffer1, 0, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION", "SET_VERTEX_BUFFERS_FLAG_RESET")
- SRB:BindResources({"SHADER_TYPE_VERTEX", "SHADER_TYPE_PIXEL"}, ResMapping, {"BIND_SHADER_RESOURCES_KEEP_EXISTING", "BIND_SHADER_RESOURCES_VERIFY_ALL_RESOLVED", "BIND_SHADER_RESOURCES_UPDATE_ALL"})
- Context.TransitionShaderResources(PSO, SRB)
- Context.CommitShaderResources(SRB)
- Context.Draw(DrawAttrs)
- else
- Context.SetPipelineState(PSOInst)
- Context.SetVertexBuffers(0, VertexBuffer2, ColorsBuffer2, 0, InstanceBuffer, 0, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION", "SET_VERTEX_BUFFERS_FLAG_RESET")
- Context.SetIndexBuffer(IndexBuffer, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- SRBInst:BindResources({"SHADER_TYPE_VERTEX", "SHADER_TYPE_PIXEL"}, ResMapping, {"BIND_SHADER_RESOURCES_KEEP_EXISTING", "BIND_SHADER_RESOURCES_VERIFY_ALL_RESOLVED", "BIND_SHADER_RESOURCES_UPDATE_MUTABLE", "BIND_SHADER_RESOURCES_UPDATE_DYNAMIC"})
- Context.TransitionShaderResources(PSOInst, SRBInst)
- Context.CommitShaderResources(SRBInst)
- Context.Draw(DrawAttrs)
- end
-
-end
diff --git a/Tests/TestApp/assets/TestRenderTargets.lua b/Tests/TestApp/assets/TestRenderTargets.lua
deleted file mode 100644
index 1a7b163..0000000
--- a/Tests/TestApp/assets/TestRenderTargets.lua
+++ /dev/null
@@ -1,442 +0,0 @@
--- Render target test script
-
-
-RTWidth = 256
-RTHeight = 256
-TestTexture0 = Texture.Create{
- Type = "RESOURCE_DIM_TEX_2D", Width = RTWidth, Height = RTHeight,
- Format = "TEX_FORMAT_RGBA8_UNORM",
- MipLevels = 1,
- SampleCount = 1,
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_SHADER_RESOURCE", "BIND_RENDER_TARGET"},
- ClearValue = {Color = {r=0.25, g=0.0, b=0.0, a=0.0}}
-}
-
-TestTexture1 = Texture.Create{
- Type = "RESOURCE_DIM_TEX_2D", Width = RTWidth*2, Height = RTHeight*2,
- Format = "TEX_FORMAT_RGBA32_FLOAT", -- Note that GLES3.1 only requires signed or unsigned normalized
- -- fixed-point or signed or unsigned integer render target formats
- MipLevels = 8,
- SampleCount = 1,
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_SHADER_RESOURCE", "BIND_RENDER_TARGET"},
- ClearValue = {Color = {r=0.0, g=0.5, b=0.0, a=0.0}}
-}
-
-TestTexture2 = Texture.Create{
- Type = "RESOURCE_DIM_TEX_2D", Width = RTWidth, Height = RTHeight,
- Format = "TEX_FORMAT_RGBA16_FLOAT", -- Note that GLES3.1 only requires signed or unsigned normalized
- -- fixed-point or signed or unsigned integer render target formats
- MipLevels = 1,
- SampleCount = 1,
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_SHADER_RESOURCE", "BIND_RENDER_TARGET"},
- ClearValue = {Color = {r=0.0, g=0.0, b=0.75, a=0.0}}
-}
-
-TestDepthTexture = Texture.Create{
- Type = "RESOURCE_DIM_TEX_2D", Width = RTWidth, Height = RTHeight,
- Format = "TEX_FORMAT_D32_FLOAT",
- MipLevels = 1,
- SampleCount = 1,
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_SHADER_RESOURCE", "BIND_DEPTH_STENCIL"},
- ClearValue = {DepthStencil = {Depth=1.0}}
-}
-
-IsGLES = Constants.DeviceType == "OpenGLES"
-
-TexDesc = {
- Type = "RESOURCE_DIM_TEX_2D", Width = RTWidth, Height = RTHeight,
- Format = "TEX_FORMAT_RGBA8_UNORM",
- MipLevels = 7,
- Usage = "USAGE_DEFAULT",
- BindFlags = {"BIND_SHADER_RESOURCE", "BIND_RENDER_TARGET"},
- ClearValue = {Color = {r=0.25, g=0.5, b=0.75, a=1.0}}
-}
-Tex2D = {Texture.Create(TexDesc), Texture.Create(TexDesc), Texture.Create(TexDesc) }
-
-TexDesc.BindFlags = {"BIND_SHADER_RESOURCE", "BIND_DEPTH_STENCIL"}
-TexDesc.Format = "TEX_FORMAT_D32_FLOAT"
-TexDS_2D = Texture.Create(TexDesc)
-
-TexDesc.BindFlags = {"BIND_SHADER_RESOURCE", "BIND_RENDER_TARGET"}
-TexDesc.Format = "TEX_FORMAT_RGBA8_UNORM"
-TexDesc.Type = "RESOURCE_DIM_TEX_2D_ARRAY"
-TexDesc.ArraySize = 16
-Tex2DArr = {Texture.Create(TexDesc), Texture.Create(TexDesc), Texture.Create(TexDesc) }
-
-TexDesc.BindFlags = {"BIND_SHADER_RESOURCE", "BIND_DEPTH_STENCIL"}
-TexDesc.Format = "TEX_FORMAT_D32_FLOAT"
-TexDS_2DArr = Texture.Create(TexDesc)
-
-if not IsGLES then
- TexDesc.BindFlags = {"BIND_SHADER_RESOURCE", "BIND_RENDER_TARGET"}
- TexDesc.Format = "TEX_FORMAT_RGBA8_UNORM"
- TexDesc.Type = "RESOURCE_DIM_TEX_3D"
- TexDesc.Depth = 16
- Tex3D= {Texture.Create(TexDesc), Texture.Create(TexDesc), Texture.Create(TexDesc) }
-
- -- Texture 3D cannot be used as depth stencil (at least in D3D11)
-end
-
-Tex2D_DefRTV = {}
-Tex2D_Mip1RTV = {}
-TexDS_2D_DefDSV = {}
-TexDS_2D_Mip1DSV = {}
-
-Tex2DArr_DefRTV = {}
-Tex2DArr_Mip1RTV = {}
-Tex2DArr_Slice2RTV = {}
-Tex2DArr_Slice2Mip2RTV = {}
-
-TexDS_2DArr_DefDSV = {}
-TexDS_2DArr_Mip1DSV = {}
-TexDS_2DArr_Slice2DSV = {}
-TexDS_2DArr_Slice2Mip2DSV = {}
-
-if not IsGLES then
- Tex3D_DefRTV = {}
- Tex3D_Mip1RTV = {}
- Tex3D_Slice2RTV = {}
- Tex3D_Slice2Mip2RTV = {}
-end
-
-for i = 1,3 do
- Tex2D_DefRTV[i] = Tex2D[i]:GetDefaultView("TEXTURE_VIEW_RENDER_TARGET")
- Tex2DArr_DefRTV[i] = Tex2DArr[i]:GetDefaultView("TEXTURE_VIEW_RENDER_TARGET")
-
- Tex2D_Mip1RTV[i] = Tex2D[i]:CreateView{ViewType = "TEXTURE_VIEW_RENDER_TARGET", MostDetailedMip = 1}
- Tex2DArr_Mip1RTV[i] = Tex2DArr[i]:CreateView{ViewType = "TEXTURE_VIEW_RENDER_TARGET", MostDetailedMip = 1}
- Tex2DArr_Slice2RTV[i] = Tex2DArr[i]:CreateView{ViewType = "TEXTURE_VIEW_RENDER_TARGET", FirstArraySlice = 2, NumArraySlices = 1}
- Tex2DArr_Slice2Mip2RTV[i] = Tex2DArr[i]:CreateView{ViewType = "TEXTURE_VIEW_RENDER_TARGET", FirstArraySlice = 2, MostDetailedMip = 2, NumArraySlices = 1}
-
- if not IsGLES then
- Tex3D_DefRTV[i] = Tex3D[i]:GetDefaultView("TEXTURE_VIEW_RENDER_TARGET")
- Tex3D_Mip1RTV[i] = Tex3D[i]:CreateView{ViewType = "TEXTURE_VIEW_RENDER_TARGET", MostDetailedMip = 1}
- Tex3D_Slice2RTV[i] = Tex3D[i]:CreateView{ViewType = "TEXTURE_VIEW_RENDER_TARGET", FirstDepthSlice = 2, NumDepthSlices = 1}
- Tex3D_Slice2Mip2RTV[i] = Tex3D[i]:CreateView{ViewType = "TEXTURE_VIEW_RENDER_TARGET", FirstDepthSlice = 2, MostDetailedMip = 2, NumDepthSlices = 1}
- end
-end
-
-
-Tex2D_DefDSV = TexDS_2D:GetDefaultView("TEXTURE_VIEW_DEPTH_STENCIL")
-Tex2DArr_DefDSV = TexDS_2DArr:GetDefaultView("TEXTURE_VIEW_DEPTH_STENCIL")
-
-
-Tex2D_Mip1DSV = TexDS_2D:CreateView{ViewType = "TEXTURE_VIEW_DEPTH_STENCIL", MostDetailedMip = 1}
-Tex2DArr_Mip1DSV = TexDS_2DArr:CreateView{ViewType = "TEXTURE_VIEW_DEPTH_STENCIL", MostDetailedMip = 1}
-Tex2DArr_Slice2DSV = TexDS_2DArr:CreateView{ViewType = "TEXTURE_VIEW_DEPTH_STENCIL", FirstArraySlice = 2, NumArraySlices = 1}
-Tex2DArr_Slice2Mip2DSV = TexDS_2DArr:CreateView{ViewType = "TEXTURE_VIEW_DEPTH_STENCIL", FirstArraySlice = 2, MostDetailedMip = 2, NumArraySlices = 1}
-
-function SetRTsHelper(RTVs, DSV)
- Context.SetRenderTargets(RTVs[1], "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.SetRenderTargets(RTVs[1], RTVs[2], "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.SetRenderTargets(RTVs[1], RTVs[2], RTVs[3], "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- if DSV then
- Context.SetRenderTargets(RTVs[1], RTVs[2], RTVs[3], DSV, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- end
- Context.ClearRenderTarget(RTVs[1], 0.25, 0.5, 0.75, 1.0, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.ClearRenderTarget(RTVs[2], 0.25, 0.5, 0.75, 1.0, "RESOURCE_STATE_TRANSITION_MODE_VERIFY")
- Context.ClearRenderTarget(RTVs[3], 0.25, 0.5, 0.75, 1.0, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- if DSV then
- Context.ClearDepthStencil(DSV, "CLEAR_DEPTH_FLAG", 1.0, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.SetRenderTargets(RTVs[1], RTVs[2], DSV, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.SetRenderTargets(RTVs[1], DSV, "RESOURCE_STATE_TRANSITION_MODE_VERIFY")
- Context.SetRenderTargets(DSV, "RESOURCE_STATE_TRANSITION_MODE_VERIFY")
- end
-end
-
-function TestSetRenderTargets()
- SetRTsHelper(Tex2D_DefRTV, Tex2D_DefDSV)
- if not IsGLES then
- SetRTsHelper(Tex2DArr_DefRTV, Tex2DArr_DefDSV) -- no glFramebufferTexture in ES3.1
- SetRTsHelper(Tex3D_DefRTV) -- no glFramebufferTexture in ES3.1
- end
-
- SetRTsHelper(Tex2D_Mip1RTV, Tex2D_Mip1DSV)
- if not IsGLES then
- SetRTsHelper(Tex2DArr_Mip1RTV, Tex2DArr_Mip1DSV) -- no glFramebufferTexture in ES3.1
- SetRTsHelper(Tex3D_Mip1RTV) -- no glFramebufferTexture in ES3.1
- end
-
- SetRTsHelper(Tex2DArr_Slice2RTV, Tex2DArr_Slice2DSV)
- if not IsGLES then
- SetRTsHelper(Tex3D_Slice2RTV) -- no glFramebufferTexture3D in ES3.1
- end
-
- SetRTsHelper(Tex2DArr_Slice2Mip2RTV, Tex2DArr_Slice2Mip2DSV)
- if not IsGLES then
- SetRTsHelper(Tex3D_Slice2Mip2RTV) -- no glFramebufferTexture3D in ES3.1
- end
-
- -- It is not allowed to mix different resources as render targets. In particular, we cannot
- -- bind Texture2D & Texture3D at the same time
- if not IsGLES then
- Context.SetRenderTargets(Tex2D_DefRTV[3], Tex2DArr_Slice2RTV[1], Tex2DArr_Slice2DSV, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.SetRenderTargets(Tex2DArr_Slice2Mip2RTV[1], Tex2DArr_Slice2Mip2DSV, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- end
-end
-
-
-Positions = { 0.0, 0.0, 0.0,
- 0.0, 1.0, 0.0,
- 1.0, 0.0, 0.0,
- 1.0, 1.0, 0.0 }
-FullQuad = {}
-for v = 0,3 do
- FullQuad[v*3+1] = Positions[v*3+1]*2 - 1
- FullQuad[v*3+2] = Positions[v*3+2]*2 - 1
- FullQuad[v*3+3] = 0
-end
-
-FullQuadBuffer = Buffer.Create(
- { BindFlags = "BIND_VERTEX_BUFFER" },
- "VT_FLOAT32",
- FullQuad
-)
-
-ScaledQuad = {}
-for v = 0,3 do
- ScaledQuad[v*3+1] = Positions[v*3+1]*XExt + MinX
- ScaledQuad[v*3+2] = Positions[v*3+2]*YExt + MinY
- ScaledQuad[v*3+3] = 0
-end
-
-ScaledQuadBuffer = Buffer.Create(
- { BindFlags = "BIND_VERTEX_BUFFER" },
- "VT_FLOAT32",
- ScaledQuad
-)
-
-TexcoordBuffer = Buffer.Create(
- { BindFlags = "BIND_VERTEX_BUFFER" },
- "VT_FLOAT32",
- { 0.0, 1.0,
- 0.0, 0.0,
- 1.0, 1.0,
- 1.0, 0.0}
-)
-
-
-Level0Sampler = Sampler.Create{
- MinFilter = "FILTER_TYPE_LINEAR",
- MagFilter = "FILTER_TYPE_LINEAR",
- MipFilter = "FILTER_TYPE_POINT",
- MaxLOD = 0
-}
-
-Level1Sampler = Sampler.Create{
- MinFilter = "FILTER_TYPE_LINEAR",
- MagFilter = "FILTER_TYPE_LINEAR",
- MipFilter = "FILTER_TYPE_POINT",
- MaxLOD = 1,
- MinLOD = 1
-}
-
-Tex0SRV = TestTexture0:GetDefaultView("TEXTURE_VIEW_SHADER_RESOURCE")
-Tex0SRV:SetSampler(Level0Sampler)
-Tex0RTV = TestTexture0:GetDefaultView("TEXTURE_VIEW_RENDER_TARGET")
-
-Tex1SRV = TestTexture1:GetDefaultView("TEXTURE_VIEW_SHADER_RESOURCE")
-Tex1SRV:SetSampler(Level1Sampler)
-Tex1RTV = TestTexture1:CreateView{
- ViewType = "TEXTURE_VIEW_RENDER_TARGET",
- MostDetailedMip = 1,
- }
-
-Tex2SRV = TestTexture2:GetDefaultView("TEXTURE_VIEW_SHADER_RESOURCE")
-Tex2SRV:SetSampler(Level0Sampler)
-Tex2RTV = TestTexture2:GetDefaultView("TEXTURE_VIEW_RENDER_TARGET")
-
-ResMapping = ResourceMapping.Create{
- {Name = "g_tex2DTest0", pObject = Tex0SRV},
- {Name = "g_tex2DTest1", pObject = Tex1SRV},
- {Name = "g_tex2DTest2", pObject = Tex2SRV}
-}
-
-TexDepthTexDSV = TestDepthTexture:GetDefaultView("TEXTURE_VIEW_DEPTH_STENCIL")
-
-
-function GetShaderPath( ShaderName )
-
- local ProcessedShaderPath = ""
- if Constants.DeviceType == "D3D11" or Constants.DeviceType == "D3D12" then
- ProcessedShaderPath = "Shaders\\" .. ShaderName .. "_DX.hlsl"
- else
- ProcessedShaderPath = "Shaders\\" .. ShaderName .. "_GL.glsl"
- end
-
- return ProcessedShaderPath
-end
-
-
-QuadVS = Shader.Create{
- FilePath = GetShaderPath("RTTest\\QuadVS"),
- UseCombinedTextureSamplers = true,
- Desc = {ShaderType = "SHADER_TYPE_VERTEX"}
-}
-
-
-RenderToTexturesPS = Shader.Create{
- FilePath = GetShaderPath("RTTest\\RenderToTexturesPS"),
- UseCombinedTextureSamplers = true,
- Desc = {ShaderType = "SHADER_TYPE_PIXEL"}
-}
-
-BlendTexturesPS = Shader.Create{
- FilePath = GetShaderPath("RTTest\\BlendTexturesPS"),
- UseCombinedTextureSamplers = true,
- Desc =
- {
- ShaderType = "SHADER_TYPE_PIXEL"
- }
-}
-
-RenderToTexPSO = PipelineState.Create
-{
- Name = "Render to textures PSO",
- GraphicsPipeline =
- {
- RasterizerDesc =
- {
- FillMode = "FILL_MODE_SOLID",
- CullMode = "CULL_MODE_NONE",
- ScissorEnable = true
- },
- DepthStencilDesc = {DepthEnable = false},
- pVS = QuadVS,
- pPS = RenderToTexturesPS,
- InputLayout =
- {
- { InputIndex = 0, BufferSlot = 0, NumComponents = 3, ValueType = "VT_FLOAT32"},
- { InputIndex = 1, BufferSlot = 1, NumComponents = 2, ValueType = "VT_FLOAT32"}
- },
- RTVFormats = {TestTexture0.Format, TestTexture1.Format},
- PrimitiveTopology = "PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"
- }
-}
-RenderToTexPSO:BindStaticResources({"SHADER_TYPE_VERTEX", "SHADER_TYPE_PIXEL"}, ResMapping)
-RenderToTexSRB = RenderToTexPSO:CreateShaderResourceBinding(true)
-
-BlendTexPSO = PipelineState.Create
-{
- Name = "Blend textures PSO",
- ResourceLayout =
- {
- StaticSamplers =
- {
- {
- ShaderStages = "SHADER_TYPE_PIXEL",
- SamplerOrTextureName = "g_tex2DTest0",
- Desc =
- {
- MinFilter = "FILTER_TYPE_LINEAR",
- MagFilter = "FILTER_TYPE_LINEAR",
- MipFilter = "FILTER_TYPE_POINT",
- MaxLOD = 0
- }
- },
- {
- ShaderStages = "SHADER_TYPE_PIXEL",
- SamplerOrTextureName = "g_tex2DTest2",
- Desc =
- {
- MinFilter = "FILTER_TYPE_LINEAR",
- MagFilter = "FILTER_TYPE_LINEAR",
- MipFilter = "FILTER_TYPE_POINT",
- MaxLOD = 0
- }
- }
- }
- },
- GraphicsPipeline =
- {
- RasterizerDesc =
- {
- FillMode = "FILL_MODE_SOLID",
- CullMode = "CULL_MODE_NONE"
- },
- DepthStencilDesc = {DepthEnable = false},
- pVS = QuadVS,
- pPS = BlendTexturesPS,
- InputLayout =
- {
- { InputIndex = 0, BufferSlot = 0, NumComponents = 3, ValueType = "VT_FLOAT32"},
- { InputIndex = 1, BufferSlot = 1, NumComponents = 2, ValueType = "VT_FLOAT32"}
- },
- RTVFormats = {extBackBufferFormat},
- DSVFormat = extDepthBufferFormat,
- PrimitiveTopology = "PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"
- }
-}
-assert(BlendTexPSO.ResourceLayout.StaticSamplers[1].ShaderStages[1] == "SHADER_TYPE_PIXEL");
-assert(BlendTexPSO.ResourceLayout.StaticSamplers[1].Desc.MipFilter == "FILTER_TYPE_POINT");
-assert(BlendTexPSO.ResourceLayout.StaticSamplers[2].SamplerOrTextureName == "g_tex2DTest2");
-
-BlendTexPSO:BindStaticResources({"SHADER_TYPE_VERTEX", "SHADER_TYPE_PIXEL"}, ResMapping)
-BlendTexSRB = BlendTexPSO:CreateShaderResourceBinding(true)
-
-DrawAttrs = DrawAttribs.Create{
- NumVertices = 4,
- Flags = "DRAW_FLAG_VERIFY_ALL"
-}
-
-VP = Viewport.Create {
- TopLeftX = 16,
- TopLeftY = 32,
- Width = RTWidth-16-8,
- Height = RTHeight-32-16,
- MinDepth = 0,
- MaxDepth = 1
-}
-
-SR = ScissorRect.Create
-{
- left = 32,
- top = 48,
- right = RTWidth-48,
- bottom = RTHeight
-}
-
-
-function RenderToTextures()
- Context.SetVertexBuffers(FullQuadBuffer, TexcoordBuffer, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION", "SET_VERTEX_BUFFERS_FLAG_RESET")
- Context.SetPipelineState(RenderToTexPSO)
- Context.TransitionShaderResources(RenderToTexPSO, RenderToTexSRB)
- Context.CommitShaderResources(RenderToTexSRB)
- Context.Draw(DrawAttrs)
-end
-
-function BlendTextures()
- Context.SetVertexBuffers(ScaledQuadBuffer, TexcoordBuffer, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION", "SET_VERTEX_BUFFERS_FLAG_RESET")
- Context.SetPipelineState(BlendTexPSO)
- Context.CommitShaderResources(BlendTexSRB, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.Draw(DrawAttrs)
-end
-
-function Render()
- TestSetRenderTargets()
-
- Context.SetRenderTargets(Tex0RTV, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION") -- To test FBO cache
- Context.SetRenderTargets(Tex1RTV, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION") -- To test FBO cache
- Context.SetRenderTargets(TexDepthTexDSV, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION") -- To test FBO cache
- Context.SetRenderTargets(Tex0RTV, TexDepthTexDSV, "RESOURCE_STATE_TRANSITION_MODE_VERIFY") -- To test FBO cache
- Context.SetRenderTargets(Tex1RTV, TexDepthTexDSV, "RESOURCE_STATE_TRANSITION_MODE_VERIFY") -- To test FBO cache
- Context.SetRenderTargets(Tex0RTV, Tex1RTV, TexDepthTexDSV, "RESOURCE_STATE_TRANSITION_MODE_VERIFY") -- To test FBO cache
-
-
- Context.SetRenderTargets(Tex2RTV, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.ClearRenderTarget(Tex2RTV, 0, 0, 0.75, "RESOURCE_STATE_TRANSITION_MODE_VERIFY")
- Context.SetRenderTargets(Tex0RTV, Tex1RTV, "RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.ClearRenderTarget(Tex0RTV, 0.25, "RESOURCE_STATE_TRANSITION_MODE_VERIFY")
- Context.ClearRenderTarget(Tex1RTV, 0.0, 0.5, "RESOURCE_STATE_TRANSITION_MODE_VERIFY")
- Context.SetViewports(VP)
- Context.SetScissorRects(SR)
- RenderToTextures()
-
- Context.SetRenderTargets("RESOURCE_STATE_TRANSITION_MODE_TRANSITION")
- Context.SetViewports()
- BlendTextures()
-end
diff --git a/Tests/TestApp/assets/VPAndSRTest.lua b/Tests/TestApp/assets/VPAndSRTest.lua
deleted file mode 100644
index f761dbd..0000000
--- a/Tests/TestApp/assets/VPAndSRTest.lua
+++ /dev/null
@@ -1,80 +0,0 @@
--- Test script file
-
-assert( TestGlobalVP.TopLeftX == 16.5);
-assert( TestGlobalVP.TopLeftY == 24.25);
-assert( TestGlobalVP.Width == 156.125);
-assert( TestGlobalVP.Height == 381.625);
-assert( TestGlobalVP.MinDepth == 0.25);
-assert( TestGlobalVP.MaxDepth == 0.75);
-
-TestVP = Viewport.Create {
- TopLeftX = 15.5,
- TopLeftY = 17.25,
- Width = 128.125,
- Height = 256.625,
- MinDepth = 0.125,
- MaxDepth = 0.875
-}
-
-assert( TestVP.TopLeftX == 15.5 )
-assert( TestVP.TopLeftY == 17.25)
-assert( TestVP.Width == 128.125)
-assert( TestVP.Height == 256.625)
-assert( TestVP.MinDepth == 0.125)
-assert( TestVP.MaxDepth == 0.875)
-
-TestVP.TopLeftX = 115.5
-TestVP.TopLeftY = 117.25
-TestVP.Width = 1128.125
-TestVP.Height = 1256.625
-TestVP.MinDepth = 0.25
-TestVP.MaxDepth = 0.75
-
-assert( TestVP.TopLeftX == 115.5 )
-assert( TestVP.TopLeftY == 117.25)
-assert( TestVP.Width == 1128.125)
-assert( TestVP.Height == 1256.625)
-assert( TestVP.MinDepth == 0.25)
-assert( TestVP.MaxDepth == 0.75)
-
-function SetViewports()
- Context.SetViewports(TestVP)
- Context.SetViewports(TestVP, TestGlobalVP)
- Context.SetViewports(TestVP, 1024, 768)
- Context.SetViewports(TestVP, TestGlobalVP, 1024, 768)
- Context.SetViewports()
-end
-
-
-assert( TestGlobalSR.left == 10);
-assert( TestGlobalSR.top == 30);
-assert( TestGlobalSR.right == 200);
-assert( TestGlobalSR.bottom == 300);
-
-TestSR = ScissorRect.Create {
- left = 50,
- top = 60,
- right = 400,
- bottom = 500
-}
-
-assert( TestSR.left == 50 )
-assert( TestSR.top == 60 )
-assert( TestSR.right == 400 )
-assert( TestSR.bottom == 500 )
-
-TestSR.left = 55
-TestSR.top = 65
-TestSR.right = 405
-TestSR.bottom = 505
-assert( TestSR.left == 55 )
-assert( TestSR.top == 65 )
-assert( TestSR.right == 405 )
-assert( TestSR.bottom == 505 )
-
-function SetScissorRects()
- Context.SetScissorRects(TestSR)
- Context.SetScissorRects(TestSR, TestGlobalSR)
- Context.SetScissorRects(TestSR, 1024, 768)
- Context.SetScissorRects(TestSR, TestGlobalSR, 1280, 1024)
-end