summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend
diff options
context:
space:
mode:
authorGravatar bunnei2022-11-03 22:21:58 -0700
committerGravatar GitHub2022-11-03 22:21:58 -0700
commit38e4382f532d606afbd3969990a9ca3bac70e557 (patch)
treeb9af6ed0a26285f4b0dcd5c21028601004267607 /src/shader_recompiler/frontend
parentMerge pull request #9135 from liamwhite/service-thread-event (diff)
parentMerge branch 'master' into mipmap (diff)
downloadyuzu-38e4382f532d606afbd3969990a9ca3bac70e557.tar.gz
yuzu-38e4382f532d606afbd3969990a9ca3bac70e557.tar.xz
yuzu-38e4382f532d606afbd3969990a9ca3bac70e557.zip
Merge pull request #8858 from vonchenplus/mipmap
video_core: Generate mipmap texture by drawing
Diffstat (limited to '')
-rw-r--r--src/shader_recompiler/frontend/ir/ir_emitter.cpp8
-rw-r--r--src/shader_recompiler/frontend/ir/ir_emitter.h3
-rw-r--r--src/shader_recompiler/frontend/ir/opcodes.inc1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate_program.cpp2
4 files changed, 14 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.cpp b/src/shader_recompiler/frontend/ir/ir_emitter.cpp
index 11086ed8c..de1ce90a3 100644
--- a/src/shader_recompiler/frontend/ir/ir_emitter.cpp
+++ b/src/shader_recompiler/frontend/ir/ir_emitter.cpp
@@ -378,6 +378,14 @@ F32 IREmitter::ResolutionDownFactor() {
378 return Inst<F32>(Opcode::ResolutionDownFactor); 378 return Inst<F32>(Opcode::ResolutionDownFactor);
379} 379}
380 380
381F32 IREmitter::RenderAreaWidth() {
382 return F32(CompositeExtract(Inst<Value>(Opcode::RenderArea), 0));
383}
384
385F32 IREmitter::RenderAreaHeight() {
386 return F32(CompositeExtract(Inst<Value>(Opcode::RenderArea), 1));
387}
388
381U32 IREmitter::LaneId() { 389U32 IREmitter::LaneId() {
382 return Inst<U32>(Opcode::LaneId); 390 return Inst<U32>(Opcode::LaneId);
383} 391}
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.h b/src/shader_recompiler/frontend/ir/ir_emitter.h
index 25839a371..f163c18d9 100644
--- a/src/shader_recompiler/frontend/ir/ir_emitter.h
+++ b/src/shader_recompiler/frontend/ir/ir_emitter.h
@@ -103,6 +103,9 @@ public:
103 103
104 [[nodiscard]] F32 ResolutionDownFactor(); 104 [[nodiscard]] F32 ResolutionDownFactor();
105 105
106 [[nodiscard]] F32 RenderAreaWidth();
107 [[nodiscard]] F32 RenderAreaHeight();
108
106 [[nodiscard]] U32 LaneId(); 109 [[nodiscard]] U32 LaneId();
107 110
108 [[nodiscard]] U32 LoadGlobalU8(const U64& address); 111 [[nodiscard]] U32 LoadGlobalU8(const U64& address);
diff --git a/src/shader_recompiler/frontend/ir/opcodes.inc b/src/shader_recompiler/frontend/ir/opcodes.inc
index 86410ddfc..f3038f298 100644
--- a/src/shader_recompiler/frontend/ir/opcodes.inc
+++ b/src/shader_recompiler/frontend/ir/opcodes.inc
@@ -63,6 +63,7 @@ OPCODE(SampleId, U32,
63OPCODE(IsHelperInvocation, U1, ) 63OPCODE(IsHelperInvocation, U1, )
64OPCODE(YDirection, F32, ) 64OPCODE(YDirection, F32, )
65OPCODE(ResolutionDownFactor, F32, ) 65OPCODE(ResolutionDownFactor, F32, )
66OPCODE(RenderArea, F32x4, )
66 67
67// Undefined 68// Undefined
68OPCODE(UndefU1, U1, ) 69OPCODE(UndefU1, U1, )
diff --git a/src/shader_recompiler/frontend/maxwell/translate_program.cpp b/src/shader_recompiler/frontend/maxwell/translate_program.cpp
index b58741d4d..b7162f719 100644
--- a/src/shader_recompiler/frontend/maxwell/translate_program.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate_program.cpp
@@ -220,6 +220,8 @@ IR::Program TranslateProgram(ObjectPool<IR::Inst>& inst_pool, ObjectPool<IR::Blo
220 220
221 Optimization::ConstantPropagationPass(program); 221 Optimization::ConstantPropagationPass(program);
222 222
223 Optimization::PositionPass(env, program);
224
223 Optimization::GlobalMemoryToStorageBufferPass(program); 225 Optimization::GlobalMemoryToStorageBufferPass(program);
224 Optimization::TexturePass(env, program); 226 Optimization::TexturePass(env, program);
225 227