From 6ce5202b8e40e672f07840ffe05001d82bffa989 Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Mon, 20 Feb 2023 17:48:04 +0000 Subject: [PATCH] Add exceptions for some more unimplemented maxwell draw regs --- .../cpp/skyline/soc/gm20b/engines/maxwell_3d.cpp | 12 ++++++++++++ .../main/cpp/skyline/soc/gm20b/engines/maxwell_3d.h | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell_3d.cpp b/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell_3d.cpp index f6b1fafc..791b7adf 100644 --- a/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell_3d.cpp +++ b/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell_3d.cpp @@ -271,6 +271,18 @@ namespace skyline::soc::gm20b::engine::maxwell3d { throw exception("drawInlineIndex2X16 not implemented!"); }) + ENGINE_STRUCT_CASE(drawZeroIndex, count, { + throw exception("drawZeroIndex not implemented!"); + }) + + ENGINE_STRUCT_CASE(drawAuto, byteCount, { + throw exception("drawAuto not implemented!"); + }) + + ENGINE_CASE(drawInlineIndex, { + throw exception("drawInlineIndex not implemented!"); + }) + ENGINE_STRUCT_CASE(drawIndexBuffer, count, { // Defer the draw until the first non-draw operation to allow for detecting instanced draws (see DeferredDrawState comment) deferredDraw.Set(count, registers.indexBuffer->first, diff --git a/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell_3d.h b/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell_3d.h index 69543a22..c07a0ab8 100644 --- a/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell_3d.h +++ b/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell_3d.h @@ -198,6 +198,11 @@ namespace skyline::soc::gm20b::engine::maxwell3d { Register<0x48A, type::ZtSize> ztSize; + struct DrawAuto { + u32 byteCount; + }; + Register<0x48F, DrawAuto> drawAuto; + Register<0x48D, type::SamplerBinding> samplerBinding; //!< If enabled, the TSC index in a bindless texture handle is ignored and the TIC index is used as the TSC index, otherwise the TSC index from the bindless texture handle is used Register<0x490, std::array> postVtgShaderAttributeSkipMask;