diff options
| author | 2021-03-30 03:58:46 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:25 -0400 | |
| commit | 7a1c14269e20cffeed780f388c90a86f8bba1a92 (patch) | |
| tree | 3a9807a9ef0d606840fdf645295764213c9cebb2 /src/shader_recompiler/backend | |
| parent | shader: Add PointCoord attribute (diff) | |
| download | yuzu-7a1c14269e20cffeed780f388c90a86f8bba1a92.tar.gz yuzu-7a1c14269e20cffeed780f388c90a86f8bba1a92.tar.xz yuzu-7a1c14269e20cffeed780f388c90a86f8bba1a92.zip | |
spirv: Add fixed pipeline point size
Diffstat (limited to 'src/shader_recompiler/backend')
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_context.cpp | 2 | ||||
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv_special.cpp | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_context.cpp b/src/shader_recompiler/backend/spirv/emit_context.cpp index 2c93bada5..5cd505d99 100644 --- a/src/shader_recompiler/backend/spirv/emit_context.cpp +++ b/src/shader_recompiler/backend/spirv/emit_context.cpp | |||
| @@ -495,7 +495,7 @@ void EmitContext::DefineOutputs(const Info& info) { | |||
| 495 | if (info.stores_position || stage == Stage::VertexB) { | 495 | if (info.stores_position || stage == Stage::VertexB) { |
| 496 | output_position = DefineOutput(*this, F32[4], spv::BuiltIn::Position); | 496 | output_position = DefineOutput(*this, F32[4], spv::BuiltIn::Position); |
| 497 | } | 497 | } |
| 498 | if (info.stores_point_size) { | 498 | if (info.stores_point_size || profile.fixed_state_point_size) { |
| 499 | if (stage == Stage::Fragment) { | 499 | if (stage == Stage::Fragment) { |
| 500 | throw NotImplementedException("Storing PointSize in Fragment stage"); | 500 | throw NotImplementedException("Storing PointSize in Fragment stage"); |
| 501 | } | 501 | } |
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp index 44d2fde02..5f80c189f 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp | |||
| @@ -17,6 +17,10 @@ void EmitPrologue(EmitContext& ctx) { | |||
| 17 | ctx.OpStore(generic_id, default_vector); | 17 | ctx.OpStore(generic_id, default_vector); |
| 18 | } | 18 | } |
| 19 | } | 19 | } |
| 20 | if (ctx.profile.fixed_state_point_size) { | ||
| 21 | const float point_size{*ctx.profile.fixed_state_point_size}; | ||
| 22 | ctx.OpStore(ctx.output_point_size, ctx.Constant(ctx.F32[1], point_size)); | ||
| 23 | } | ||
| 20 | } | 24 | } |
| 21 | } | 25 | } |
| 22 | 26 | ||