diff options
| author | iwubcode <iwubcode@users.noreply.github.com> | 2022-05-04 00:41:34 -0500 |
|---|---|---|
| committer | iwubcode <iwubcode@users.noreply.github.com> | 2022-06-24 18:09:53 -0500 |
| commit | 5dd2704416385946fbdd80b38c01b0f9d7735648 (patch) | |
| tree | c6fa0e6d5552282939412f29c7f6b9fc7f6f4337 /Source/Core/VideoCommon/GeometryShaderGen.cpp | |
| parent | 3790c99a7d1f6377166049c61bbe03f93e2c3a60 (diff) | |
D3D / VideoCommon: generate HLSL from SPIRV
Diffstat (limited to 'Source/Core/VideoCommon/GeometryShaderGen.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/GeometryShaderGen.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp index 150354e4f3..997e809860 100644 --- a/Source/Core/VideoCommon/GeometryShaderGen.cpp +++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp @@ -103,7 +103,8 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& "}};\n"); out.Write("struct VS_OUTPUT {{\n"); - GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, ""); + GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, "", + ShaderStage::Geometry); out.Write("}};\n"); if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) @@ -113,12 +114,14 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& out.Write("VARYING_LOCATION(0) in VertexData {{\n"); GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, - GetInterpolationQualifier(msaa, ssaa, true, true)); + GetInterpolationQualifier(msaa, ssaa, true, true), + ShaderStage::Geometry); out.Write("}} vs[{}];\n", vertex_in); out.Write("VARYING_LOCATION(0) out VertexData {{\n"); GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, - GetInterpolationQualifier(msaa, ssaa, true, false)); + GetInterpolationQualifier(msaa, ssaa, true, false), + ShaderStage::Geometry); if (stereo) out.Write("\tflat int layer;\n"); @@ -134,6 +137,7 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& if (stereo) out.Write("\tuint layer : SV_RenderTargetArrayIndex;\n"); + out.Write("\tfloat4 posout : SV_Position;\n"); out.Write("}};\n"); @@ -344,6 +348,7 @@ static void EmitVertex(ShaderCode& out, const ShaderHostConfig& host_config, else { out.Write("\tps.o = {};\n", vertex); + out.Write("\tps.posout = {}.pos;\n", vertex); } if (stereo) |
