mirror of
https://github.com/hedge-dev/UnleashedRecomp.git
synced 2025-04-28 13:27:58 +03:00
Update ShaderRecomp submodule.
This commit is contained in:
parent
c2d0128226
commit
edc1eeead6
4 changed files with 53 additions and 46 deletions
|
@ -1,36 +1,52 @@
|
|||
#include "../../../thirdparty/ShaderRecomp/ShaderRecomp/shader_common.hlsli"
|
||||
|
||||
CONSTANT_BUFFER(VertexShaderConstants, b0)
|
||||
#ifdef __spirv__
|
||||
|
||||
#define fZmin vk::RawBufferLoad<float>(g_PushConstants.PixelShaderConstants + 0)
|
||||
#define fZmax vk::RawBufferLoad<float>(g_PushConstants.PixelShaderConstants + 16)
|
||||
|
||||
#define Tex0_ResourceDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 0)
|
||||
#define Tex1_ResourceDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 4)
|
||||
#define Tex2_ResourceDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 8)
|
||||
#define Tex3_ResourceDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 12)
|
||||
#define Tex4_ResourceDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 16)
|
||||
|
||||
#define Tex0_SamplerDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 64)
|
||||
#define Tex1_SamplerDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 68)
|
||||
#define Tex2_SamplerDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 72)
|
||||
#define Tex3_SamplerDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 76)
|
||||
#define Tex4_SamplerDescriptorIndex vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 80)
|
||||
|
||||
#else
|
||||
|
||||
cbuffer PixelShaderConstants : register(b1, space4)
|
||||
{
|
||||
[[vk::offset(2880)]] float4 g_ViewportSize PACK_OFFSET(c180);
|
||||
float fZmin : packoffset(c0);
|
||||
float fZmax : packoffset(c1);
|
||||
};
|
||||
|
||||
CONSTANT_BUFFER(PixelShaderConstants, b1)
|
||||
cbuffer SharedConstants : register(b2, space4)
|
||||
{
|
||||
[[vk::offset(0)]] float fZmin PACK_OFFSET(c0);
|
||||
[[vk::offset(4)]] float fZmax PACK_OFFSET(c1);
|
||||
};
|
||||
|
||||
CONSTANT_BUFFER(SharedConstants, b2)
|
||||
{
|
||||
[[vk::offset(0)]] uint Tex0_ResourceDescriptorIndex PACK_OFFSET(c0.x);
|
||||
[[vk::offset(4)]] uint Tex1_ResourceDescriptorIndex PACK_OFFSET(c0.y);
|
||||
[[vk::offset(8)]] uint Tex2_ResourceDescriptorIndex PACK_OFFSET(c0.z);
|
||||
[[vk::offset(12)]] uint Tex3_ResourceDescriptorIndex PACK_OFFSET(c0.w);
|
||||
[[vk::offset(16)]] uint Tex4_ResourceDescriptorIndex PACK_OFFSET(c1.x);
|
||||
uint Tex0_ResourceDescriptorIndex : packoffset(c0.x);
|
||||
uint Tex1_ResourceDescriptorIndex : packoffset(c0.y);
|
||||
uint Tex2_ResourceDescriptorIndex : packoffset(c0.z);
|
||||
uint Tex3_ResourceDescriptorIndex : packoffset(c0.w);
|
||||
uint Tex4_ResourceDescriptorIndex : packoffset(c1.x);
|
||||
|
||||
[[vk::offset(64)]] uint Tex0_SamplerDescriptorIndex PACK_OFFSET(c4.x);
|
||||
[[vk::offset(68)]] uint Tex1_SamplerDescriptorIndex PACK_OFFSET(c4.y);
|
||||
[[vk::offset(72)]] uint Tex2_SamplerDescriptorIndex PACK_OFFSET(c4.z);
|
||||
[[vk::offset(76)]] uint Tex3_SamplerDescriptorIndex PACK_OFFSET(c4.w);
|
||||
[[vk::offset(80)]] uint Tex4_SamplerDescriptorIndex PACK_OFFSET(c5.x);
|
||||
uint Tex0_SamplerDescriptorIndex : packoffset(c4.x);
|
||||
uint Tex1_SamplerDescriptorIndex : packoffset(c4.y);
|
||||
uint Tex2_SamplerDescriptorIndex : packoffset(c4.z);
|
||||
uint Tex3_SamplerDescriptorIndex : packoffset(c4.w);
|
||||
uint Tex4_SamplerDescriptorIndex : packoffset(c5.x);
|
||||
|
||||
SHARED_CONSTANTS;
|
||||
DEFINE_SHARED_CONSTANTS();
|
||||
};
|
||||
|
||||
#define bCsc (GET_SHARED_CONSTANT(g_Booleans) & (1 << (16 + 0)))
|
||||
#define bAmv (GET_SHARED_CONSTANT(g_Booleans) & (1 << (16 + 1)))
|
||||
#define bZmv (GET_SHARED_CONSTANT(g_Booleans) & (1 << (16 + 2)))
|
||||
#endif
|
||||
|
||||
#define bCsc (g_Booleans & (1 << (16 + 0)))
|
||||
#define bAmv (g_Booleans & (1 << (16 + 1)))
|
||||
#define bZmv (g_Booleans & (1 << (16 + 2)))
|
||||
|
||||
struct VertexShaderInput
|
||||
{
|
||||
|
|
|
@ -2,22 +2,17 @@
|
|||
|
||||
PixelShaderOutput main(in Interpolators In)
|
||||
{
|
||||
#ifdef __spirv__
|
||||
PixelShaderConstants constants = vk::RawBufferLoad<PixelShaderConstants>(g_PushConstants.PixelShaderConstants, 0x100);
|
||||
SharedConstants sharedConstants = vk::RawBufferLoad<SharedConstants>(g_PushConstants.SharedConstants, 0x100);
|
||||
#endif
|
||||
Texture2D<float4> Tex0 = g_Texture2DDescriptorHeap[Tex0_ResourceDescriptorIndex];
|
||||
Texture2D<float4> Tex1 = g_Texture2DDescriptorHeap[Tex1_ResourceDescriptorIndex];
|
||||
Texture2D<float4> Tex2 = g_Texture2DDescriptorHeap[Tex2_ResourceDescriptorIndex];
|
||||
Texture2D<float4> Tex3 = g_Texture2DDescriptorHeap[Tex3_ResourceDescriptorIndex];
|
||||
Texture2D<float4> Tex4 = g_Texture2DDescriptorHeap[Tex4_ResourceDescriptorIndex];
|
||||
|
||||
Texture2D<float4> Tex0 = g_Texture2DDescriptorHeap[GET_SHARED_CONSTANT(Tex0_ResourceDescriptorIndex)];
|
||||
Texture2D<float4> Tex1 = g_Texture2DDescriptorHeap[GET_SHARED_CONSTANT(Tex1_ResourceDescriptorIndex)];
|
||||
Texture2D<float4> Tex2 = g_Texture2DDescriptorHeap[GET_SHARED_CONSTANT(Tex2_ResourceDescriptorIndex)];
|
||||
Texture2D<float4> Tex3 = g_Texture2DDescriptorHeap[GET_SHARED_CONSTANT(Tex3_ResourceDescriptorIndex)];
|
||||
Texture2D<float4> Tex4 = g_Texture2DDescriptorHeap[GET_SHARED_CONSTANT(Tex4_ResourceDescriptorIndex)];
|
||||
|
||||
SamplerState Tex0_s = g_SamplerDescriptorHeap[GET_SHARED_CONSTANT(Tex0_SamplerDescriptorIndex)];
|
||||
SamplerState Tex1_s = g_SamplerDescriptorHeap[GET_SHARED_CONSTANT(Tex1_SamplerDescriptorIndex)];
|
||||
SamplerState Tex2_s = g_SamplerDescriptorHeap[GET_SHARED_CONSTANT(Tex2_SamplerDescriptorIndex)];
|
||||
SamplerState Tex3_s = g_SamplerDescriptorHeap[GET_SHARED_CONSTANT(Tex3_SamplerDescriptorIndex)];
|
||||
SamplerState Tex4_s = g_SamplerDescriptorHeap[GET_SHARED_CONSTANT(Tex4_SamplerDescriptorIndex)];
|
||||
SamplerState Tex0_s = g_SamplerDescriptorHeap[Tex0_SamplerDescriptorIndex];
|
||||
SamplerState Tex1_s = g_SamplerDescriptorHeap[Tex1_SamplerDescriptorIndex];
|
||||
SamplerState Tex2_s = g_SamplerDescriptorHeap[Tex2_SamplerDescriptorIndex];
|
||||
SamplerState Tex3_s = g_SamplerDescriptorHeap[Tex3_SamplerDescriptorIndex];
|
||||
SamplerState Tex4_s = g_SamplerDescriptorHeap[Tex4_SamplerDescriptorIndex];
|
||||
|
||||
PixelShaderOutput Out;
|
||||
float ValY = Tex0.Sample(Tex0_s, In.UV).r;
|
||||
|
@ -36,15 +31,15 @@ PixelShaderOutput main(in Interpolators In)
|
|||
}
|
||||
else if (ValD < 17.0 / 255.0)
|
||||
{
|
||||
ValD = GET_CONSTANT(fZmin);
|
||||
ValD = fZmin;
|
||||
}
|
||||
else if (ValD < 224.0 / 255.0)
|
||||
{
|
||||
ValD = (ValD - 17.0 / 255.0) / (223.0 / 255.0 - 17.0 / 255.0) * (GET_CONSTANT(fZmax) - GET_CONSTANT(fZmin)) + GET_CONSTANT(fZmin);
|
||||
ValD = (ValD - 17.0 / 255.0) / (223.0 / 255.0 - 17.0 / 255.0) * (fZmax - fZmin) + fZmin;
|
||||
}
|
||||
else if (ValD < 240.0 / 255.0)
|
||||
{
|
||||
ValD = GET_CONSTANT(fZmax);
|
||||
ValD = fZmax;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -2,10 +2,6 @@
|
|||
|
||||
Interpolators main(in VertexShaderInput In)
|
||||
{
|
||||
#ifdef __spirv__
|
||||
VertexShaderConstants constants = vk::RawBufferLoad<VertexShaderConstants>(g_PushConstants.VertexShaderConstants, 0x100);
|
||||
#endif
|
||||
|
||||
Interpolators Out;
|
||||
Out.ProjPos = In.ObjPos;
|
||||
Out.UV = In.UV;
|
||||
|
|
2
thirdparty/ShaderRecomp
vendored
2
thirdparty/ShaderRecomp
vendored
|
@ -1 +1 @@
|
|||
Subproject commit 85d19486559ff3603456b20585f64a50e2dd9d95
|
||||
Subproject commit 25b4f604af274645255fa8afc7455b3b77bc5f3d
|
Loading…
Add table
Add a link
Reference in a new issue