From 040e4cb7e454d532d249d2a5de6f2aba0c902baa Mon Sep 17 00:00:00 2001 From: assiduous Date: Tue, 24 Dec 2019 19:23:32 -0800 Subject: Updated submodules; removed tests folder (tests are now part of every submodule) --- Tests/TestApp/assets/LuaTest.lua | 708 --------------------- .../assets/Shaders/CSTest/FillTextureDX.csh | 14 - .../assets/Shaders/CSTest/FillTextureGL.csh | 17 - .../Shaders/CSTest/UpdateDispatchArgsBuffDX.csh | 9 - .../Shaders/CSTest/UpdateDispatchArgsBuffGL.csh | 22 - .../assets/Shaders/CSTest/UpdateDrawArgsBuffDX.csh | 9 - .../assets/Shaders/CSTest/UpdateDrawArgsBuffGL.csh | 12 - .../assets/Shaders/CSTest/UpdateIndBuffDX.csh | 8 - .../assets/Shaders/CSTest/UpdateIndBuffGL.csh | 20 - .../assets/Shaders/CSTest/UpdateVertBuffDX.csh | 35 - .../assets/Shaders/CSTest/UpdateVertBuffGL.csh | 35 - .../assets/Shaders/CSTest/UpdateVertBuffGLES.csh | 44 -- Tests/TestApp/assets/Shaders/GSTestDX.gsh | 37 -- Tests/TestApp/assets/Shaders/GSTestDX.psh | 18 - Tests/TestApp/assets/Shaders/GSTestDX.vsh | 24 - .../assets/Shaders/RTTest/BlendTexturesPS_DX.hlsl | 23 - .../assets/Shaders/RTTest/BlendTexturesPS_GL.glsl | 21 - Tests/TestApp/assets/Shaders/RTTest/QuadVS_DX.hlsl | 21 - Tests/TestApp/assets/Shaders/RTTest/QuadVS_GL.glsl | 24 - .../Shaders/RTTest/RenderToTexturesPS_DX.hlsl | 13 - .../Shaders/RTTest/RenderToTexturesPS_GL.glsl | 11 - Tests/TestApp/assets/Shaders/SpriteDX.psh | 14 - Tests/TestApp/assets/Shaders/SpriteGL.psh | 11 - Tests/TestApp/assets/Shaders/TessTestDX.psh | 18 - Tests/TestApp/assets/Shaders/TessTestQuadDX.dsh | 32 - Tests/TestApp/assets/Shaders/TessTestQuadDX.hsh | 46 -- Tests/TestApp/assets/Shaders/TessTestQuadDX.vsh | 24 - Tests/TestApp/assets/Shaders/TessTestTriDX.dsh | 32 - Tests/TestApp/assets/Shaders/TessTestTriDX.hsh | 44 -- Tests/TestApp/assets/Shaders/TessTestTriDX.vsh | 24 - Tests/TestApp/assets/Shaders/TextureIntTestDX.psh | 28 - Tests/TestApp/assets/Shaders/TextureIntTestGL.psh | 33 - Tests/TestApp/assets/Shaders/TextureTestDX.psh | 26 - Tests/TestApp/assets/Shaders/TextureTestDX.vsh | 22 - Tests/TestApp/assets/Shaders/TextureTestGL.psh | 22 - Tests/TestApp/assets/Shaders/TextureTestGL.vsh | 25 - Tests/TestApp/assets/Shaders/UniformBufferDX.psh | 21 - Tests/TestApp/assets/Shaders/UniformBufferGL.psh | 26 - Tests/TestApp/assets/Shaders/minimalDX.psh | 11 - Tests/TestApp/assets/Shaders/minimalDX.vsh | 23 - Tests/TestApp/assets/Shaders/minimalGL.psh | 16 - Tests/TestApp/assets/Shaders/minimalGL.vsh | 35 - Tests/TestApp/assets/Shaders/minimalInstDX.vsh | 23 - Tests/TestApp/assets/Shaders/minimalInstGL.vsh | 27 - Tests/TestApp/assets/TestComputeShaders.lua | 372 ----------- Tests/TestApp/assets/TestRenderScripts.lua | 220 ------- Tests/TestApp/assets/TestRenderTargets.lua | 442 ------------- Tests/TestApp/assets/VPAndSRTest.lua | 80 --- 48 files changed, 2822 deletions(-) delete mode 100644 Tests/TestApp/assets/LuaTest.lua delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/FillTextureDX.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/FillTextureGL.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffDX.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/UpdateDispatchArgsBuffGL.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffDX.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/UpdateDrawArgsBuffGL.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffDX.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/UpdateIndBuffGL.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffDX.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGL.csh delete mode 100644 Tests/TestApp/assets/Shaders/CSTest/UpdateVertBuffGLES.csh delete mode 100644 Tests/TestApp/assets/Shaders/GSTestDX.gsh delete mode 100644 Tests/TestApp/assets/Shaders/GSTestDX.psh delete mode 100644 Tests/TestApp/assets/Shaders/GSTestDX.vsh delete mode 100644 Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_DX.hlsl delete mode 100644 Tests/TestApp/assets/Shaders/RTTest/BlendTexturesPS_GL.glsl delete mode 100644 Tests/TestApp/assets/Shaders/RTTest/QuadVS_DX.hlsl delete mode 100644 Tests/TestApp/assets/Shaders/RTTest/QuadVS_GL.glsl delete mode 100644 Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_DX.hlsl delete mode 100644 Tests/TestApp/assets/Shaders/RTTest/RenderToTexturesPS_GL.glsl delete mode 100644 Tests/TestApp/assets/Shaders/SpriteDX.psh delete mode 100644 Tests/TestApp/assets/Shaders/SpriteGL.psh delete mode 100644 Tests/TestApp/assets/Shaders/TessTestDX.psh delete mode 100644 Tests/TestApp/assets/Shaders/TessTestQuadDX.dsh delete mode 100644 Tests/TestApp/assets/Shaders/TessTestQuadDX.hsh delete mode 100644 Tests/TestApp/assets/Shaders/TessTestQuadDX.vsh delete mode 100644 Tests/TestApp/assets/Shaders/TessTestTriDX.dsh delete mode 100644 Tests/TestApp/assets/Shaders/TessTestTriDX.hsh delete mode 100644 Tests/TestApp/assets/Shaders/TessTestTriDX.vsh delete mode 100644 Tests/TestApp/assets/Shaders/TextureIntTestDX.psh delete mode 100644 Tests/TestApp/assets/Shaders/TextureIntTestGL.psh delete mode 100644 Tests/TestApp/assets/Shaders/TextureTestDX.psh delete mode 100644 Tests/TestApp/assets/Shaders/TextureTestDX.vsh delete mode 100644 Tests/TestApp/assets/Shaders/TextureTestGL.psh delete mode 100644 Tests/TestApp/assets/Shaders/TextureTestGL.vsh delete mode 100644 Tests/TestApp/assets/Shaders/UniformBufferDX.psh delete mode 100644 Tests/TestApp/assets/Shaders/UniformBufferGL.psh delete mode 100644 Tests/TestApp/assets/Shaders/minimalDX.psh delete mode 100644 Tests/TestApp/assets/Shaders/minimalDX.vsh delete mode 100644 Tests/TestApp/assets/Shaders/minimalGL.psh delete mode 100644 Tests/TestApp/assets/Shaders/minimalGL.vsh delete mode 100644 Tests/TestApp/assets/Shaders/minimalInstDX.vsh delete mode 100644 Tests/TestApp/assets/Shaders/minimalInstGL.vsh delete mode 100644 Tests/TestApp/assets/TestComputeShaders.lua delete mode 100644 Tests/TestApp/assets/TestRenderScripts.lua delete mode 100644 Tests/TestApp/assets/TestRenderTargets.lua delete mode 100644 Tests/TestApp/assets/VPAndSRTest.lua (limited to 'Tests/TestApp/assets') 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 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 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 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 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 bufPositions : register(u3); -RWBuffer bufTexcoord; -Buffer 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 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 g_tex2DTest0 : register(t2); -SamplerState g_tex2DTest0_sampler : register(s3); - -Texture2D g_tex2DTest1; -SamplerState g_tex2DTest1_sampler; - -Texture2D 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 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 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 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 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 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 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 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 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 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 -- cgit v1.2.3