summaryrefslogtreecommitdiffstats
path: root/src/video_core/engines/maxwell_3d.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-09-15 12:17:04 +0200
committerGitHub <noreply@github.com>2019-09-15 12:17:04 +0200
commitb8b1747704a612145655a1391c1ebf4d1f9e5ba6 (patch)
tree5f85729ae6532a678532ae20b9422fb0c2e84b73 /src/video_core/engines/maxwell_3d.cpp
parentMerge pull request #2857 from ReinUsesLisp/surface-srgb (diff)
parentmaxwell_3d: Update firmware 4 call stub commentary (diff)
downloadyuzu-b8b1747704a612145655a1391c1ebf4d1f9e5ba6.tar
yuzu-b8b1747704a612145655a1391c1ebf4d1f9e5ba6.tar.gz
yuzu-b8b1747704a612145655a1391c1ebf4d1f9e5ba6.tar.bz2
yuzu-b8b1747704a612145655a1391c1ebf4d1f9e5ba6.tar.lz
yuzu-b8b1747704a612145655a1391c1ebf4d1f9e5ba6.tar.xz
yuzu-b8b1747704a612145655a1391c1ebf4d1f9e5ba6.tar.zst
yuzu-b8b1747704a612145655a1391c1ebf4d1f9e5ba6.zip
Diffstat (limited to 'src/video_core/engines/maxwell_3d.cpp')
-rw-r--r--src/video_core/engines/maxwell_3d.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp
index c8c92757a..5d516cdb3 100644
--- a/src/video_core/engines/maxwell_3d.cpp
+++ b/src/video_core/engines/maxwell_3d.cpp
@@ -329,6 +329,10 @@ void Maxwell3D::CallMethod(const GPU::MethodCall& method_call) {
ProcessMacroBind(method_call.argument);
break;
}
+ case MAXWELL3D_REG_INDEX(firmware[4]): {
+ ProcessFirmwareCall4();
+ break;
+ }
case MAXWELL3D_REG_INDEX(const_buffer.cb_data[0]):
case MAXWELL3D_REG_INDEX(const_buffer.cb_data[1]):
case MAXWELL3D_REG_INDEX(const_buffer.cb_data[2]):
@@ -419,6 +423,14 @@ void Maxwell3D::ProcessMacroBind(u32 data) {
macro_positions[regs.macros.entry++] = data;
}
+void Maxwell3D::ProcessFirmwareCall4() {
+ LOG_WARNING(HW_GPU, "(STUBBED) called");
+
+ // Firmware call 4 is a blob that changes some registers depending on its parameters.
+ // These registers don't affect emulation and so are stubbed by setting 0xd00 to 1.
+ regs.reg_array[0xd00] = 1;
+}
+
void Maxwell3D::ProcessQueryGet() {
const GPUVAddr sequence_address{regs.query.QueryAddress()};
// Since the sequence address is given as a GPU VAddr, we have to convert it to an application