From 1c8b7a61b07a40f8d0657101e1ec467e7c6fca69 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 28 Sep 2024 22:56:26 +0300 Subject: [PATCH 01/20] Lua: Expose read/write functions for floats and doubles --- src/lua.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/lua.cpp b/src/lua.cpp index 6a16ab5b..5b78cec2 100644 --- a/src/lua.cpp +++ b/src/lua.cpp @@ -130,6 +130,32 @@ MAKE_MEMORY_FUNCTIONS(32) MAKE_MEMORY_FUNCTIONS(64) #undef MAKE_MEMORY_FUNCTIONS +static int readFloatThunk(lua_State* L) { + const u32 vaddr = (u32)lua_tonumber(L, 1); + lua_pushnumber(L, (lua_Number)Helpers::bit_cast(LuaManager::g_emulator->getMemory().read32(vaddr))); + return 1; +} + +static int writeFloatThunk(lua_State* L) { + const u32 vaddr = (u32)lua_tonumber(L, 1); + const float value = (float)lua_tonumber(L, 2); + LuaManager::g_emulator->getMemory().write32(vaddr, Helpers::bit_cast(value)); + return 0; +} + +static int readDoubleThunk(lua_State* L) { + const u32 vaddr = (u32)lua_tonumber(L, 1); + lua_pushnumber(L, (lua_Number)Helpers::bit_cast(LuaManager::g_emulator->getMemory().read64(vaddr))); + return 1; +} + +static int writeDoubleThunk(lua_State* L) { + const u32 vaddr = (u32)lua_tonumber(L, 1); + const double value = (double)lua_tonumber(L, 2); + LuaManager::g_emulator->getMemory().write64(vaddr, Helpers::bit_cast(value)); + return 0; +} + static int getAppIDThunk(lua_State* L) { std::optional id = LuaManager::g_emulator->getMemory().getProgramID(); @@ -248,10 +274,14 @@ static constexpr luaL_Reg functions[] = { { "__read16", read16Thunk }, { "__read32", read32Thunk }, { "__read64", read64Thunk }, + { "__readFloat", readFloatThunk }, + { "__readDouble", readDoubleThunk }, { "__write8", write8Thunk} , { "__write16", write16Thunk }, { "__write32", write32Thunk }, { "__write64", write64Thunk }, + { "__writeFloat", writeFloatThunk }, + { "__writeDouble", writeDoubleThunk }, { "__getAppID", getAppIDThunk }, { "__pause", pauseThunk }, { "__resume", resumeThunk }, @@ -273,10 +303,15 @@ void LuaManager::initializeThunks() { read16 = function(addr) return GLOBALS.__read16(addr) end, read32 = function(addr) return GLOBALS.__read32(addr) end, read64 = function(addr) return GLOBALS.__read64(addr) end, + readFloat = function(addr) return GLOBALS.__readFloat(addr) end, + readDouble = function(addr) return GLOBALS.__readDouble(addr) end, + write8 = function(addr, value) GLOBALS.__write8(addr, value) end, write16 = function(addr, value) GLOBALS.__write16(addr, value) end, write32 = function(addr, value) GLOBALS.__write32(addr, value) end, write64 = function(addr, value) GLOBALS.__write64(addr, value) end, + writeFloat = function(addr, value) GLOBALS.__writeFloat(addr, value) end, + writeDouble = function(addr, value) GLOBALS.__writeDouble(addr, value) end, getAppID = function() local ffi = require("ffi") From 3e72323653cdfd31b0d1428f919847b5d20077fc Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sun, 29 Sep 2024 00:32:51 +0300 Subject: [PATCH 02/20] HLE DSP: Initial mixer work --- include/audio/dsp_shared_mem.hpp | 8 +++--- include/audio/hle_core.hpp | 46 +++++++++++++++++++++++++++++-- src/core/audio/hle_core.cpp | 47 ++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 7 deletions(-) diff --git a/include/audio/dsp_shared_mem.hpp b/include/audio/dsp_shared_mem.hpp index e776211d..272edf7e 100644 --- a/include/audio/dsp_shared_mem.hpp +++ b/include/audio/dsp_shared_mem.hpp @@ -324,8 +324,8 @@ namespace Audio::HLE { BitField<15, 1, u32> outputBufferCountDirty; BitField<16, 1, u32> masterVolumeDirty; - BitField<24, 1, u32> auxReturnVolume0Dirty; - BitField<25, 1, u32> auxReturnVolume1Dirty; + BitField<24, 1, u32> auxVolume0Dirty; + BitField<25, 1, u32> auxVolume1Dirty; BitField<26, 1, u32> outputFormatDirty; BitField<27, 1, u32> clippingModeDirty; BitField<28, 1, u32> headphonesConnectedDirty; @@ -337,7 +337,7 @@ namespace Audio::HLE { /// The DSP has three intermediate audio mixers. This controls the volume level (0.0-1.0) for /// each at the final mixer. float_le masterVolume; - std::array auxReturnVolume; + std::array auxVolumes; u16_le outputBufferCount; u16 pad1[2]; @@ -422,7 +422,7 @@ namespace Audio::HLE { struct DspStatus { u16_le unknown; - u16_le dropped_frames; + u16_le droppedFrames; u16 pad0[0xE]; }; ASSERT_DSP_STRUCT(DspStatus, 32); diff --git a/include/audio/hle_core.hpp b/include/audio/hle_core.hpp index c36f0500..bd717237 100644 --- a/include/audio/hle_core.hpp +++ b/include/audio/hle_core.hpp @@ -95,8 +95,7 @@ namespace Audio { DSPSource() { reset(); } }; - class HLE_DSP : public DSPCore { - // The audio frame types are public in case we want to use them for unit tests + class DSPMixer { public: template using Sample = std::array; @@ -113,6 +112,43 @@ namespace Audio { template using QuadFrame = Frame; + private: + using ChannelFormat = HLE::DspConfiguration::OutputFormat; + // The audio from each DSP voice is converted to quadraphonic and then fed into 3 intermediate mixing stages + // Two of these intermediate mixers (second and third) are used for effects, including custom effects done on the CPU + static constexpr usize mixerStageCount = 3; + + public: + ChannelFormat channelFormat = ChannelFormat::Stereo; + std::array volumes; + std::array enableAuxStages; + + void reset() { + channelFormat = ChannelFormat::Stereo; + + volumes.fill(0.0); + enableAuxStages.fill(false); + } + }; + + class HLE_DSP : public DSPCore { + // The audio frame types are public in case we want to use them for unit tests + public: + template + using Sample = DSPMixer::Sample; + + template + using Frame = DSPMixer::Frame; + + template + using MonoFrame = DSPMixer::MonoFrame; + + template + using StereoFrame = DSPMixer::StereoFrame; + + template + using QuadFrame = DSPMixer::QuadFrame; + using Source = Audio::DSPSource; using SampleBuffer = Source::SampleBuffer; @@ -131,6 +167,7 @@ namespace Audio { std::array sources; // DSP voices Audio::HLE::DspMemory dspRam; + Audio::DSPMixer mixer; std::unique_ptr aacDecoder; void resetAudioPipe(); @@ -175,10 +212,13 @@ namespace Audio { void handleAACRequest(const AAC::Message& request); void updateSourceConfig(Source& source, HLE::SourceConfiguration::Configuration& config, s16_le* adpcmCoefficients); + void updateMixerConfig(HLE::SharedMemory& sharedMem); void generateFrame(StereoFrame& frame); void generateFrame(DSPSource& source); void outputFrame(); - + // Perform the final mix, mixing the quadraphonic samples from all voices into the output audio frame + void performMix(Audio::HLE::SharedMemory& readRegion, Audio::HLE::SharedMemory& writeRegion); + // Decode an entire buffer worth of audio void decodeBuffer(DSPSource& source); diff --git a/src/core/audio/hle_core.cpp b/src/core/audio/hle_core.cpp index b4f9ab02..a616f317 100644 --- a/src/core/audio/hle_core.cpp +++ b/src/core/audio/hle_core.cpp @@ -76,6 +76,7 @@ namespace Audio { source.reset(); } + mixer.reset(); // Note: Reset audio pipe AFTER resetting all pipes, otherwise the new data will be yeeted resetAudioPipe(); } @@ -250,6 +251,8 @@ namespace Audio { source.isBufferIDDirty = false; } + + performMix(read, write); } void HLE_DSP::updateSourceConfig(Source& source, HLE::SourceConfiguration::Configuration& config, s16_le* adpcmCoefficients) { @@ -465,6 +468,50 @@ namespace Audio { } } + void HLE_DSP::performMix(Audio::HLE::SharedMemory& readRegion, Audio::HLE::SharedMemory& writeRegion) { + updateMixerConfig(readRegion); + // TODO: Do the actual audio mixing + + auto& dspStatus = writeRegion.dspStatus; + // Stub the DSP status. It's unknown what the "unknown" field is but Citra sets it to 0, so we do too to be safe + dspStatus.droppedFrames = 0; + dspStatus.unknown = 0; + } + + void HLE_DSP::updateMixerConfig(Audio::HLE::SharedMemory& sharedMem) { + auto& config = sharedMem.dspConfiguration; + // No configs have been changed, so there's nothing to update + if (config.dirtyRaw == 0) { + return; + } + + if (config.outputFormatDirty) { + mixer.channelFormat = config.outputFormat; + } + + if (config.masterVolumeDirty) { + mixer.volumes[0] = config.masterVolume; + } + + if (config.auxVolume0Dirty) { + mixer.volumes[1] = config.auxVolumes[0]; + } + + if (config.auxVolume1Dirty) { + mixer.volumes[2] = config.auxVolumes[1]; + } + + if (config.auxBusEnable0Dirty) { + mixer.enableAuxStages[0] = config.auxBusEnable[0] != 0; + } + + if (config.auxBusEnable1Dirty) { + mixer.enableAuxStages[1] = config.auxBusEnable[1] != 0; + } + + config.dirtyRaw = 0; + } + HLE_DSP::SampleBuffer HLE_DSP::decodePCM8(const u8* data, usize sampleCount, Source& source) { SampleBuffer decodedSamples(sampleCount); From 82068031f3fb2a5b010a77c9029558be2f275d9f Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sun, 13 Oct 2024 23:27:08 +0300 Subject: [PATCH 03/20] Shadergen: Pre-allocate space for shadergen string --- src/core/PICA/shader_gen_glsl.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/PICA/shader_gen_glsl.cpp b/src/core/PICA/shader_gen_glsl.cpp index 69f74930..61694fcc 100644 --- a/src/core/PICA/shader_gen_glsl.cpp +++ b/src/core/PICA/shader_gen_glsl.cpp @@ -34,6 +34,8 @@ static constexpr const char* uniformDefinition = R"( std::string FragmentGenerator::getDefaultVertexShader() { std::string ret = ""; + // Reserve some space (128KB) in the output string to avoid too many allocations later + ret.reserve(128 * 1024); switch (api) { case API::GL: ret += "#version 410 core"; break; From fa9ce5fc70c71905a68a536610de01c8763836f4 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sun, 13 Oct 2024 21:17:24 +0000 Subject: [PATCH 04/20] GLES: Implement logic ops via fb fetch (#608) * GLES: Implement logic ops via fb fetch * Attempt to fix deprecated libglx-mesa0 package * Update Qt_Build.yml * GLES: Enable fb fetch instead of requiring it * GLES: Add support for GL_ARM_shader_framebuffer_fetch * Fix GL_EXT_shader_framebuffer_fetch behavior --- .github/workflows/Hydra_Build.yml | 4 +- .github/workflows/Linux_AppImage_Build.yml | 2 +- .github/workflows/Linux_Build.yml | 2 +- .github/workflows/Qt_Build.yml | 3 +- CMakeLists.txt | 2 +- include/PICA/pica_frag_config.hpp | 5 ++ include/PICA/regs.hpp | 19 +++++++ include/PICA/shader_gen.hpp | 3 +- include/renderer_gl/gl_driver.hpp | 12 +++++ include/renderer_gl/renderer_gl.hpp | 2 + src/core/PICA/shader_gen_glsl.cpp | 59 ++++++++++++++++++++-- src/core/renderer_gl/renderer_gl.cpp | 10 +++- 12 files changed, 111 insertions(+), 12 deletions(-) create mode 100644 include/renderer_gl/gl_driver.hpp diff --git a/.github/workflows/Hydra_Build.yml b/.github/workflows/Hydra_Build.yml index e2c2004b..ce48966c 100644 --- a/.github/workflows/Hydra_Build.yml +++ b/.github/workflows/Hydra_Build.yml @@ -107,7 +107,7 @@ jobs: - name: Install misc packages run: | - sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev libfuse2 libwayland-dev + sudo apt-get update && sudo apt install libx11-dev libgl1 libglx-mesa0 mesa-common-dev libfuse2 libwayland-dev - name: Install newer Clang run: | @@ -160,7 +160,7 @@ jobs: - name: Install misc packages run: | - sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev libfuse2 libwayland-dev + sudo apt-get update && sudo apt install libx11-dev libgl1 libglx-mesa0 mesa-common-dev libfuse2 libwayland-dev - name: Setup Vulkan SDK uses: humbletim/setup-vulkan-sdk@v1.2.0 diff --git a/.github/workflows/Linux_AppImage_Build.yml b/.github/workflows/Linux_AppImage_Build.yml index f32a7d38..1e3ec061 100644 --- a/.github/workflows/Linux_AppImage_Build.yml +++ b/.github/workflows/Linux_AppImage_Build.yml @@ -24,7 +24,7 @@ jobs: run: git submodule update --init --recursive - name: Install misc packages - run: sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev libfuse2 + run: sudo apt-get update && sudo apt install libx11-dev libgl1 libglx-mesa0 mesa-common-dev libfuse2 - name: Install newer Clang run: | diff --git a/.github/workflows/Linux_Build.yml b/.github/workflows/Linux_Build.yml index 9cb05303..05f1fa54 100644 --- a/.github/workflows/Linux_Build.yml +++ b/.github/workflows/Linux_Build.yml @@ -24,7 +24,7 @@ jobs: run: git submodule update --init --recursive - name: Install misc packages - run: sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev + run: sudo apt-get update && sudo apt install libx11-dev libgl1 libglx-mesa0 mesa-common-dev - name: Install newer Clang run: | diff --git a/.github/workflows/Qt_Build.yml b/.github/workflows/Qt_Build.yml index d3a09866..8a93a156 100644 --- a/.github/workflows/Qt_Build.yml +++ b/.github/workflows/Qt_Build.yml @@ -105,8 +105,7 @@ jobs: - name: Install misc packages run: | - sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev libfuse2 libwayland-dev libgl1-mesa-dev - sudo add-apt-repository -y ppa:savoury1/qt-6-2 + sudo apt-get update && sudo apt install libx11-dev libgl1 libglx-mesa0 mesa-common-dev libfuse2 libwayland-dev libgl1-mesa-dev sudo apt update sudo apt install qt6-base-dev qt6-base-private-dev diff --git a/CMakeLists.txt b/CMakeLists.txt index 88a92f8a..91dafe9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -381,7 +381,7 @@ if(ENABLE_OPENGL) set(RENDERER_GL_INCLUDE_FILES third_party/opengl/opengl.hpp include/renderer_gl/renderer_gl.hpp include/renderer_gl/textures.hpp include/renderer_gl/surfaces.hpp include/renderer_gl/surface_cache.hpp - include/renderer_gl/gl_state.hpp + include/renderer_gl/gl_state.hpp include/renderer_gl/gl_driver.hpp ) set(RENDERER_GL_SOURCE_FILES src/core/renderer_gl/renderer_gl.cpp diff --git a/include/PICA/pica_frag_config.hpp b/include/PICA/pica_frag_config.hpp index 5d5f8420..7b63a7b5 100644 --- a/include/PICA/pica_frag_config.hpp +++ b/include/PICA/pica_frag_config.hpp @@ -17,6 +17,7 @@ namespace PICA { // enable == off means a CompareFunction of Always BitField<0, 3, CompareFunction> alphaTestFunction; BitField<3, 1, u32> depthMapEnable; + BitField<4, 4, LogicOpMode> logicOpMode; }; }; @@ -214,6 +215,10 @@ namespace PICA { (alphaTestConfig & 1) ? static_cast(alphaTestFunction) : PICA::CompareFunction::Always; outConfig.depthMapEnable = regs[InternalRegs::DepthmapEnable] & 1; + // Shows if blending is enabled. If it is not enabled, then logic ops are enabled instead + const bool blendingEnabled = (regs[InternalRegs::ColourOperation] & (1 << 8)) != 0; + outConfig.logicOpMode = blendingEnabled ? LogicOpMode::Copy : LogicOpMode(Helpers::getBits<0, 4>(regs[InternalRegs::LogicOp])); + texConfig.texUnitConfig = regs[InternalRegs::TexUnitCfg]; texConfig.texEnvUpdateBuffer = regs[InternalRegs::TexEnvUpdateBuffer]; diff --git a/include/PICA/regs.hpp b/include/PICA/regs.hpp index 636e8f7c..3185d350 100644 --- a/include/PICA/regs.hpp +++ b/include/PICA/regs.hpp @@ -396,6 +396,25 @@ namespace PICA { GreaterOrEqual = 7, }; + enum class LogicOpMode : u32 { + Clear = 0, + And = 1, + ReverseAnd = 2, + Copy = 3, + Set = 4, + InvertedCopy = 5, + Nop = 6, + Invert = 7, + Nand = 8, + Or = 9, + Nor = 10, + Xor = 11, + Equiv = 12, + InvertedAnd = 13, + ReverseOr = 14, + InvertedOr = 15, + }; + enum class FogMode : u32 { Disabled = 0, Fog = 5, diff --git a/include/PICA/shader_gen.hpp b/include/PICA/shader_gen.hpp index 215e5adb..f938b558 100644 --- a/include/PICA/shader_gen.hpp +++ b/include/PICA/shader_gen.hpp @@ -25,10 +25,11 @@ namespace PICA::ShaderGen { bool isSamplerEnabled(u32 environmentID, u32 lutID); void compileFog(std::string& shader, const PICA::FragmentConfig& config); + void compileLogicOps(std::string& shader, const PICA::FragmentConfig& config); public: FragmentGenerator(API api, Language language) : api(api), language(language) {} - std::string generate(const PICA::FragmentConfig& config); + std::string generate(const PICA::FragmentConfig& config, void* driverInfo = nullptr); std::string getDefaultVertexShader(); void setTarget(API api, Language language) { diff --git a/include/renderer_gl/gl_driver.hpp b/include/renderer_gl/gl_driver.hpp new file mode 100644 index 00000000..a15c061f --- /dev/null +++ b/include/renderer_gl/gl_driver.hpp @@ -0,0 +1,12 @@ +#pragma once + +// Information about our OpenGL/OpenGL ES driver that we should keep track of +// Stuff like whether specific extensions are supported, and potentially things like OpenGL context information +namespace OpenGL { + struct Driver { + bool supportsExtFbFetch = false; + bool supportsArmFbFetch = false; + + bool supportFbFetch() const { return supportsExtFbFetch || supportsArmFbFetch; } + }; +} // namespace OpenGL \ No newline at end of file diff --git a/include/renderer_gl/renderer_gl.hpp b/include/renderer_gl/renderer_gl.hpp index 42b8bba1..07069536 100644 --- a/include/renderer_gl/renderer_gl.hpp +++ b/include/renderer_gl/renderer_gl.hpp @@ -12,6 +12,7 @@ #include "PICA/pica_vertex.hpp" #include "PICA/regs.hpp" #include "PICA/shader_gen.hpp" +#include "gl_driver.hpp" #include "gl_state.hpp" #include "helpers.hpp" #include "logger.hpp" @@ -82,6 +83,7 @@ class RendererGL final : public Renderer { OpenGL::Program& getSpecializedShader(); PICA::ShaderGen::FragmentGenerator fragShaderGen; + OpenGL::Driver driverInfo; MAKE_LOG_FUNCTION(log, rendererLogger) void setupBlending(); diff --git a/src/core/PICA/shader_gen_glsl.cpp b/src/core/PICA/shader_gen_glsl.cpp index 61694fcc..e1bdf517 100644 --- a/src/core/PICA/shader_gen_glsl.cpp +++ b/src/core/PICA/shader_gen_glsl.cpp @@ -1,6 +1,10 @@ #include "PICA/pica_frag_config.hpp" #include "PICA/regs.hpp" #include "PICA/shader_gen.hpp" + +// We can include the driver headers here since they shouldn't have any actual API-specific code +#include "renderer_gl/gl_driver.hpp" + using namespace PICA; using namespace PICA::ShaderGen; @@ -96,7 +100,7 @@ std::string FragmentGenerator::getDefaultVertexShader() { return ret; } -std::string FragmentGenerator::generate(const FragmentConfig& config) { +std::string FragmentGenerator::generate(const FragmentConfig& config, void* driverInfo) { std::string ret = ""; switch (api) { @@ -105,6 +109,27 @@ std::string FragmentGenerator::generate(const FragmentConfig& config) { default: break; } + // For GLES we need to enable & use the framebuffer fetch extension in order to emulate logic ops + bool emitLogicOps = api == API::GLES && config.outConfig.logicOpMode != PICA::LogicOpMode::Copy && driverInfo != nullptr; + + if (emitLogicOps) { + auto driver = static_cast(driverInfo); + + // If the driver does not support framebuffer fetch at all, don't emit logic op code + if (!driver->supportFbFetch()) { + emitLogicOps = false; + } + + // Figure out which fb fetch extension we have and enable it + else { + if (driver->supportsExtFbFetch) { + ret += "\n#extension GL_EXT_shader_framebuffer_fetch : enable\n#define fb_color fragColor\n"; + } else if (driver->supportsArmFbFetch) { + ret += "\n#extension GL_ARM_shader_framebuffer_fetch : enable\n#define fb_color gl_LastFragColorARM[0]\n"; + } + } + } + bool unimplementedFlag = false; if (api == API::GLES) { ret += R"( @@ -194,10 +219,13 @@ std::string FragmentGenerator::generate(const FragmentConfig& config) { } compileFog(ret, config); - applyAlphaTest(ret, config); - ret += "fragColor = combinerOutput;\n}"; // End of main function + if (!emitLogicOps) { + ret += "fragColor = combinerOutput;\n}"; // End of main function + } else { + compileLogicOps(ret, config); + } return ret; } @@ -673,3 +701,28 @@ void FragmentGenerator::compileFog(std::string& shader, const PICA::FragmentConf shader += "float fog_factor = clamp(value.r + value.g * delta, 0.0, 1.0);"; shader += "combinerOutput.rgb = mix(fog_color, combinerOutput.rgb, fog_factor);"; } + +void FragmentGenerator::compileLogicOps(std::string& shader, const PICA::FragmentConfig& config) { + if (api != API::GLES) [[unlikely]] { + Helpers::warn("Shadergen: Unsupported API for compileLogicOps"); + shader += "fragColor = combinerOutput;\n}"; // End of main function + + return; + } + + shader += "fragColor = "; + switch (config.outConfig.logicOpMode) { + case PICA::LogicOpMode::Copy: shader += "combinerOutput"; break; + case PICA::LogicOpMode::Nop: shader += "fb_color"; break; + case PICA::LogicOpMode::Clear: shader += "vec4(0.0)"; break; + case PICA::LogicOpMode::Set: shader += "vec4(uintBitsToFloat(0xFFFFFFFFu))"; break; + case PICA::LogicOpMode::InvertedCopy: shader += "vec4(uvec4(combinerOutput * 255.0) ^ uvec4(0xFFu)) * (1.0 / 255.0)"; break; + + default: + shader += "combinerOutput"; + Helpers::warn("Shadergen: Unimplemented logic op mode"); + break; + } + + shader += ";\n}"; // End of main function +} \ No newline at end of file diff --git a/src/core/renderer_gl/renderer_gl.cpp b/src/core/renderer_gl/renderer_gl.cpp index 5146370a..ecbee3a2 100644 --- a/src/core/renderer_gl/renderer_gl.cpp +++ b/src/core/renderer_gl/renderer_gl.cpp @@ -167,6 +167,10 @@ void RendererGL::initGraphicsContextInternal() { reset(); + // Populate our driver info structure + driverInfo.supportsExtFbFetch = GLAD_GL_EXT_shader_framebuffer_fetch != 0; + driverInfo.supportsArmFbFetch = GLAD_GL_ARM_shader_framebuffer_fetch != 0; + // Initialize the default vertex shader used with shadergen std::string defaultShadergenVSSource = fragShaderGen.getDefaultVertexShader(); defaultShadergenVs.create({defaultShadergenVSSource.c_str(), defaultShadergenVSSource.size()}, OpenGL::Vertex); @@ -839,12 +843,16 @@ OpenGL::Program& RendererGL::getSpecializedShader() { constexpr uint uboBlockBinding = 2; PICA::FragmentConfig fsConfig(regs); + // If we're not on GLES, ignore the logic op configuration and don't generate redundant shaders for it, since we use hw logic ops +#ifndef USING_GLES + fsConfig.outConfig.logicOpMode = PICA::LogicOpMode(0); +#endif CachedProgram& programEntry = shaderCache[fsConfig]; OpenGL::Program& program = programEntry.program; if (!program.exists()) { - std::string fs = fragShaderGen.generate(fsConfig); + std::string fs = fragShaderGen.generate(fsConfig, &driverInfo); OpenGL::Shader fragShader({fs.c_str(), fs.size()}, OpenGL::Fragment); program.create({defaultShadergenVs, fragShader}); From afaf18f1248f7ffbb7bb36c1ef86ce150ecd1a00 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Mon, 14 Oct 2024 00:42:35 +0300 Subject: [PATCH 05/20] GLES: Fix Set logic op --- src/core/PICA/shader_gen_glsl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/PICA/shader_gen_glsl.cpp b/src/core/PICA/shader_gen_glsl.cpp index e1bdf517..13d5aa58 100644 --- a/src/core/PICA/shader_gen_glsl.cpp +++ b/src/core/PICA/shader_gen_glsl.cpp @@ -715,7 +715,7 @@ void FragmentGenerator::compileLogicOps(std::string& shader, const PICA::Fragmen case PICA::LogicOpMode::Copy: shader += "combinerOutput"; break; case PICA::LogicOpMode::Nop: shader += "fb_color"; break; case PICA::LogicOpMode::Clear: shader += "vec4(0.0)"; break; - case PICA::LogicOpMode::Set: shader += "vec4(uintBitsToFloat(0xFFFFFFFFu))"; break; + case PICA::LogicOpMode::Set: shader += "vec4(1.0)"; break; case PICA::LogicOpMode::InvertedCopy: shader += "vec4(uvec4(combinerOutput * 255.0) ^ uvec4(0xFFu)) * (1.0 / 255.0)"; break; default: @@ -725,4 +725,4 @@ void FragmentGenerator::compileLogicOps(std::string& shader, const PICA::Fragmen } shader += ";\n}"; // End of main function -} \ No newline at end of file +} From 49a94a13c53b317157544b329eadf65667b004a9 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 19 Oct 2024 16:53:51 +0300 Subject: [PATCH 06/20] Moar shader decompiler (#559) * Renderer: Add prepareForDraw callback * Add fmt submodule and port shader decompiler instructions to it * Add shader acceleration setting * Hook up vertex shaders to shader cache * Shader decompiler: Fix redundant compilations * Shader Decompiler: Fix vertex attribute upload * Shader compiler: Simplify generated code for reading and faster compilation * Further simplify shader decompiler output * Shader decompiler: More smallen-ing * Shader decompiler: Get PICA uniforms uploaded to the GPU * Shader decompiler: Readd clipping * Shader decompiler: Actually `break` on control flow instructions * Shader decompiler: More control flow handling * Shader decompiler: Fix desitnation mask * Shader Decomp: Remove pair member capture in lambda (unsupported on NDK) * Disgusting changes to handle the fact that hw shader shaders are 2x as big * Shader decompiler: Implement proper output semantic mapping * Moar instructions * Shader decompiler: Add FLR/SLT/SLTI/SGE/SGEI * Shader decompiler: Add register indexing * Shader decompiler: Optimize mova with both x and y masked * Shader decompiler: Add DPH/DPHI * Fix shader caching being broken * PICA decompiler: Cache VS uniforms * Simply vertex cache code * Simplify vertex cache code * Shader decompiler: Add loops * Shader decompiler: Implement safe multiplication * Shader decompiler: Implement LG2/EX2 * Shader decompiler: More control flow * Shader decompiler: Fix JMPU condition * Shader decompiler: Convert main function to void * PICA: Start implementing GPU vertex fetch * More hw VAO work * More hw VAO work * More GPU vertex fetch code * Add GL Stream Buffer from Duckstation * GL: Actually upload data to stream buffers * GPU: Cleanup immediate mode handling * Get first renders working with accelerated draws * Shader decompiler: Fix control flow analysis bugs * HW shaders: Accelerate indexed draws * Shader decompiler: Add support for compilation errors * GLSL decompiler: Fall back for LITP * Add Renderdoc scope classes * Fix control flow analysis bug * HW shaders: Fix attribute fetch * Rewriting hw vertex fetch * Stream buffer: Fix copy-paste mistake * HW shaders: Fix indexed rendering * HW shaders: Add padding attributes * HW shaders: Avoid redundant glVertexAttrib4f calls * HW shaders: Fix loops * HW shaders: Make generated shaders slightly smaller * Fix libretro build * HW shaders: Fix android * Remove redundant ubershader checks * Set accelerate shader default to true * Shader decompiler: Don't declare VS input attributes as an array * Change ubuntu-latest to Ubuntu 24.04 because Microsoft screwed up their CI again * fix merge conflict bug --- .github/workflows/Android_Build.yml | 4 +- .github/workflows/HTTP_Build.yml | 2 +- .github/workflows/Hydra_Build.yml | 4 +- .github/workflows/Linux_AppImage_Build.yml | 2 +- .github/workflows/Linux_Build.yml | 2 +- .github/workflows/Qt_Build.yml | 2 +- .gitmodules | 3 + CMakeLists.txt | 12 +- include/PICA/draw_acceleration.hpp | 45 ++ include/PICA/gpu.hpp | 10 +- include/PICA/pica_vert_config.hpp | 57 ++ include/PICA/shader.hpp | 25 +- include/PICA/shader_decompiler.hpp | 19 +- include/PICA/shader_gen.hpp | 3 + include/PICA/shader_unit.hpp | 7 +- include/align.hpp | 99 +++ include/config.hpp | 6 +- include/renderdoc.hpp | 33 +- include/renderer.hpp | 13 +- include/renderer_gl/gl_state.hpp | 9 - include/renderer_gl/renderer_gl.hpp | 73 ++- src/config.cpp | 2 + src/core/PICA/draw_acceleration.cpp | 148 +++++ src/core/PICA/gpu.cpp | 79 ++- src/core/PICA/regs.cpp | 3 +- src/core/PICA/shader_decompiler.cpp | 624 ++++++++++++++++--- src/core/PICA/shader_gen_glsl.cpp | 111 ++++ src/core/PICA/shader_unit.cpp | 1 + src/core/renderer_gl/gl_state.cpp | 3 - src/core/renderer_gl/renderer_gl.cpp | 380 ++++++++--- src/libretro_core.cpp | 7 +- third_party/duckstation/gl/stream_buffer.cpp | 288 +++++++++ third_party/duckstation/gl/stream_buffer.h | 53 ++ third_party/fmt | 1 + 34 files changed, 1877 insertions(+), 253 deletions(-) create mode 100644 include/PICA/draw_acceleration.hpp create mode 100644 include/PICA/pica_vert_config.hpp create mode 100644 include/align.hpp create mode 100644 src/core/PICA/draw_acceleration.cpp create mode 100644 third_party/duckstation/gl/stream_buffer.cpp create mode 100644 third_party/duckstation/gl/stream_buffer.h create mode 160000 third_party/fmt diff --git a/.github/workflows/Android_Build.yml b/.github/workflows/Android_Build.yml index 11811f8b..b7e64f5f 100644 --- a/.github/workflows/Android_Build.yml +++ b/.github/workflows/Android_Build.yml @@ -8,7 +8,7 @@ on: jobs: x64: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 strategy: matrix: @@ -73,7 +73,7 @@ jobs: ./src/pandroid/app/build/outputs/apk/${{ env.BUILD_TYPE }}/app-${{ env.BUILD_TYPE }}.apk arm64: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 strategy: matrix: diff --git a/.github/workflows/HTTP_Build.yml b/.github/workflows/HTTP_Build.yml index 0bdaa4f7..c4f7cfee 100644 --- a/.github/workflows/HTTP_Build.yml +++ b/.github/workflows/HTTP_Build.yml @@ -16,7 +16,7 @@ jobs: # well on Windows or Mac. You can convert this to a matrix build if you need # cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/Hydra_Build.yml b/.github/workflows/Hydra_Build.yml index ce48966c..785e0e4a 100644 --- a/.github/workflows/Hydra_Build.yml +++ b/.github/workflows/Hydra_Build.yml @@ -98,7 +98,7 @@ jobs: ${{github.workspace}}/docs/libretro/panda3ds_libretro.info Linux: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 @@ -151,7 +151,7 @@ jobs: ${{github.workspace}}/docs/libretro/panda3ds_libretro.info Android-x64: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/Linux_AppImage_Build.yml b/.github/workflows/Linux_AppImage_Build.yml index 1e3ec061..51c4a933 100644 --- a/.github/workflows/Linux_AppImage_Build.yml +++ b/.github/workflows/Linux_AppImage_Build.yml @@ -16,7 +16,7 @@ jobs: # well on Windows or Mac. You can convert this to a matrix build if you need # cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/Linux_Build.yml b/.github/workflows/Linux_Build.yml index 05f1fa54..dfcb6954 100644 --- a/.github/workflows/Linux_Build.yml +++ b/.github/workflows/Linux_Build.yml @@ -16,7 +16,7 @@ jobs: # well on Windows or Mac. You can convert this to a matrix build if you need # cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/Qt_Build.yml b/.github/workflows/Qt_Build.yml index 8a93a156..3b846a27 100644 --- a/.github/workflows/Qt_Build.yml +++ b/.github/workflows/Qt_Build.yml @@ -96,7 +96,7 @@ jobs: path: 'Alber.zip' Linux: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 diff --git a/.gitmodules b/.gitmodules index 97bc129c..f1a70f41 100644 --- a/.gitmodules +++ b/.gitmodules @@ -76,6 +76,9 @@ [submodule "third_party/metal-cpp"] path = third_party/metal-cpp url = https://github.com/Panda3DS-emu/metal-cpp +[submodule "third_party/fmt"] + path = third_party/fmt + url = https://github.com/fmtlib/fmt [submodule "third_party/fdk-aac"] path = third_party/fdk-aac url = https://github.com/Panda3DS-emu/fdk-aac/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 91dafe9e..fe72f3b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -146,11 +146,13 @@ if (NOT ANDROID) target_link_libraries(AlberCore PUBLIC SDL2-static) endif() +add_subdirectory(third_party/fmt) add_subdirectory(third_party/toml11) include_directories(${SDL2_INCLUDE_DIR}) include_directories(third_party/toml11) include_directories(third_party/glm) include_directories(third_party/renderdoc) +include_directories(third_party/duckstation) add_subdirectory(third_party/cmrc) @@ -263,7 +265,7 @@ set(PICA_SOURCE_FILES src/core/PICA/gpu.cpp src/core/PICA/regs.cpp src/core/PICA src/core/PICA/shader_interpreter.cpp src/core/PICA/dynapica/shader_rec.cpp src/core/PICA/dynapica/shader_rec_emitter_x64.cpp src/core/PICA/pica_hash.cpp src/core/PICA/dynapica/shader_rec_emitter_arm64.cpp src/core/PICA/shader_gen_glsl.cpp - src/core/PICA/shader_decompiler.cpp + src/core/PICA/shader_decompiler.cpp src/core/PICA/draw_acceleration.cpp ) set(LOADER_SOURCE_FILES src/core/loader/elf.cpp src/core/loader/ncsd.cpp src/core/loader/ncch.cpp src/core/loader/3dsx.cpp src/core/loader/lz77.cpp) @@ -315,7 +317,8 @@ set(HEADER_FILES include/emulator.hpp include/helpers.hpp include/termcolor.hpp include/audio/miniaudio_device.hpp include/ring_buffer.hpp include/bitfield.hpp include/audio/dsp_shared_mem.hpp include/audio/hle_core.hpp include/capstone.hpp include/audio/aac.hpp include/PICA/pica_frag_config.hpp include/PICA/pica_frag_uniforms.hpp include/PICA/shader_gen_types.hpp include/PICA/shader_decompiler.hpp - include/sdl_sensors.hpp include/renderdoc.hpp include/audio/aac_decoder.hpp + include/PICA/pica_vert_config.hpp include/sdl_sensors.hpp include/PICA/draw_acceleration.hpp include/renderdoc.hpp + include/align.hpp include/audio/aac_decoder.hpp ) cmrc_add_resource_library( @@ -348,7 +351,6 @@ if(ENABLE_LUAJIT AND NOT ANDROID) endif() if(ENABLE_QT_GUI) - include_directories(third_party/duckstation) set(THIRD_PARTY_SOURCE_FILES ${THIRD_PARTY_SOURCE_FILES} third_party/duckstation/window_info.cpp third_party/duckstation/gl/context.cpp) if(APPLE) @@ -391,6 +393,8 @@ if(ENABLE_OPENGL) src/host_shaders/opengl_fragment_shader.frag ) + set(THIRD_PARTY_SOURCE_FILES ${THIRD_PARTY_SOURCE_FILES} third_party/duckstation/gl/stream_buffer.cpp) + set(HEADER_FILES ${HEADER_FILES} ${RENDERER_GL_INCLUDE_FILES}) source_group("Source Files\\Core\\OpenGL Renderer" FILES ${RENDERER_GL_SOURCE_FILES}) @@ -480,7 +484,7 @@ set(ALL_SOURCES ${SOURCE_FILES} ${FS_SOURCE_FILES} ${CRYPTO_SOURCE_FILES} ${KERN target_sources(AlberCore PRIVATE ${ALL_SOURCES}) target_link_libraries(AlberCore PRIVATE dynarmic cryptopp glad resources_console_fonts teakra fdk-aac) -target_link_libraries(AlberCore PUBLIC glad capstone) +target_link_libraries(AlberCore PUBLIC glad capstone fmt::fmt) if(ENABLE_DISCORD_RPC AND NOT ANDROID) target_compile_definitions(AlberCore PUBLIC "PANDA3DS_ENABLE_DISCORD_RPC=1") diff --git a/include/PICA/draw_acceleration.hpp b/include/PICA/draw_acceleration.hpp new file mode 100644 index 00000000..6a66cdc1 --- /dev/null +++ b/include/PICA/draw_acceleration.hpp @@ -0,0 +1,45 @@ +#pragma once + +#include + +#include "helpers.hpp" + +namespace PICA { + struct DrawAcceleration { + static constexpr u32 maxAttribCount = 16; + static constexpr u32 maxLoaderCount = 12; + + struct AttributeInfo { + u32 offset; + u32 stride; + + u8 type; + u8 componentCount; + + std::array fixedValue; // For fixed attributes + }; + + struct Loader { + // Data to upload for this loader + u8* data; + usize size; + }; + + u8* indexBuffer; + + // Minimum and maximum index in the index buffer for a draw call + u16 minimumIndex, maximumIndex; + u32 totalAttribCount; + u32 totalLoaderCount; + u32 enabledAttributeMask; + u32 fixedAttributes; + u32 vertexDataSize; + + std::array attributeInfo; + std::array loaders; + + bool canBeAccelerated; + bool indexed; + bool useShortIndices; + }; +} // namespace PICA \ No newline at end of file diff --git a/include/PICA/gpu.hpp b/include/PICA/gpu.hpp index ac2a49e6..c168a9bf 100644 --- a/include/PICA/gpu.hpp +++ b/include/PICA/gpu.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include "PICA/draw_acceleration.hpp" #include "PICA/dynapica/shader_rec.hpp" #include "PICA/float_types.hpp" #include "PICA/pica_vertex.hpp" @@ -13,6 +14,12 @@ #include "memory.hpp" #include "renderer.hpp" +enum class ShaderExecMode { + Interpreter, // Interpret shaders on the CPU + JIT, // Recompile shaders to CPU machine code + Hardware, // Recompiler shaders to host shaders and run them on the GPU +}; + class GPU { static constexpr u32 regNum = 0x300; static constexpr u32 extRegNum = 0x1000; @@ -45,7 +52,7 @@ class GPU { uint immediateModeVertIndex; uint immediateModeAttrIndex; // Index of the immediate mode attribute we're uploading - template + template void drawArrays(); // Silly method of avoiding linking problems. TODO: Change to something less silly @@ -81,6 +88,7 @@ class GPU { std::unique_ptr renderer; PICA::Vertex getImmediateModeVertex(); + void getAcceleratedDrawInfo(PICA::DrawAcceleration& accel, bool indexed); public: // 256 entries per LUT with each LUT as its own row forming a 2D image 256 * LUT_COUNT // Encoded in PICA native format diff --git a/include/PICA/pica_vert_config.hpp b/include/PICA/pica_vert_config.hpp new file mode 100644 index 00000000..4300e454 --- /dev/null +++ b/include/PICA/pica_vert_config.hpp @@ -0,0 +1,57 @@ +#pragma once +#include +#include +#include +#include +#include + +#include "PICA/pica_hash.hpp" +#include "PICA/regs.hpp" +#include "PICA/shader.hpp" +#include "bitfield.hpp" +#include "helpers.hpp" + +namespace PICA { + // Configuration struct used + struct VertConfig { + PICAHash::HashType shaderHash; + PICAHash::HashType opdescHash; + u32 entrypoint; + + // PICA registers for configuring shader output->fragment semantic mapping + std::array outmaps{}; + u16 outputMask; + u8 outputCount; + bool usingUbershader; + + // Pad to 56 bytes so that the compiler won't insert unnecessary padding, which in turn will affect our unordered_map lookup + // As the padding will get hashed and memcmp'd... + u32 pad{}; + + bool operator==(const VertConfig& config) const { + // Hash function and equality operator required by std::unordered_map + return std::memcmp(this, &config, sizeof(VertConfig)) == 0; + } + + VertConfig(PICAShader& shader, const std::array& regs, bool usingUbershader) : usingUbershader(usingUbershader) { + shaderHash = shader.getCodeHash(); + opdescHash = shader.getOpdescHash(); + entrypoint = shader.entrypoint; + + outputCount = regs[PICA::InternalRegs::ShaderOutputCount] & 7; + outputMask = regs[PICA::InternalRegs::VertexShaderOutputMask]; + for (int i = 0; i < outputCount; i++) { + // Mask out unused bits + outmaps[i] = regs[PICA::InternalRegs::ShaderOutmap0 + i] & 0x1F1F1F1F; + } + } + }; +} // namespace PICA + +static_assert(sizeof(PICA::VertConfig) == 56); + +// Override std::hash for our vertex config class +template <> +struct std::hash { + std::size_t operator()(const PICA::VertConfig& config) const noexcept { return PICAHash::computeHash((const char*)&config, sizeof(config)); } +}; \ No newline at end of file diff --git a/include/PICA/shader.hpp b/include/PICA/shader.hpp index e5f57c72..1040d2ff 100644 --- a/include/PICA/shader.hpp +++ b/include/PICA/shader.hpp @@ -107,6 +107,11 @@ class PICAShader { alignas(16) std::array inputs; // Attributes passed to the shader alignas(16) std::array outputs; alignas(16) vec4f dummy = vec4f({f24::zero(), f24::zero(), f24::zero(), f24::zero()}); // Dummy register used by the JIT + + // We use a hashmap for matching 3DS shaders to their equivalent compiled code in our shader cache in the shader JIT + // We choose our hash type to be a 64-bit integer by default, as the collision chance is very tiny and generating it is decently optimal + // Ideally we want to be able to support multiple different types of hash depending on compilation settings, but let's get this working first + using Hash = PICAHash::HashType; protected: std::array operandDescriptors; @@ -125,14 +130,13 @@ class PICAShader { std::array callInfo; ShaderType type; - // We use a hashmap for matching 3DS shaders to their equivalent compiled code in our shader cache in the shader JIT - // We choose our hash type to be a 64-bit integer by default, as the collision chance is very tiny and generating it is decently optimal - // Ideally we want to be able to support multiple different types of hash depending on compilation settings, but let's get this working first - using Hash = PICAHash::HashType; - Hash lastCodeHash = 0; // Last hash computed for the shader code (Used for the JIT caching mechanism) Hash lastOpdescHash = 0; // Last hash computed for the operand descriptors (Also used for the JIT) + public: + bool uniformsDirty = false; + + protected: bool codeHashDirty = false; bool opdescHashDirty = false; @@ -284,6 +288,7 @@ class PICAShader { uniform[2] = f24::fromRaw(((floatUniformBuffer[0] & 0xff) << 16) | (floatUniformBuffer[1] >> 16)); uniform[3] = f24::fromRaw(floatUniformBuffer[0] >> 8); } + uniformsDirty = true; } } @@ -295,6 +300,12 @@ class PICAShader { u[1] = getBits<8, 8>(word); u[2] = getBits<16, 8>(word); u[3] = getBits<24, 8>(word); + uniformsDirty = true; + } + + void uploadBoolUniform(u32 value) { + boolUniform = value; + uniformsDirty = true; } void run(); @@ -302,6 +313,10 @@ class PICAShader { Hash getCodeHash(); Hash getOpdescHash(); + + // Returns how big the PICA uniforms are combined. Used for hw accelerated shaders where we upload the uniforms to our GPU. + static constexpr usize totalUniformSize() { return sizeof(floatUniforms) + sizeof(intUniforms) + sizeof(boolUniform); } + void* getUniformPointer() { return static_cast(&floatUniforms); } }; static_assert( diff --git a/include/PICA/shader_decompiler.hpp b/include/PICA/shader_decompiler.hpp index 1253226f..4a5cdc13 100644 --- a/include/PICA/shader_decompiler.hpp +++ b/include/PICA/shader_decompiler.hpp @@ -1,8 +1,11 @@ #pragma once +#include + +#include #include #include #include -#include +#include #include #include "PICA/shader.hpp" @@ -41,9 +44,12 @@ namespace PICA::ShaderGen { explicit Function(u32 start, u32 end) : start(start), end(end) {} bool operator<(const Function& other) const { return AddressRange(start, end) < AddressRange(other.start, other.end); } - std::string getIdentifier() const { return "func_" + std::to_string(start) + "_to_" + std::to_string(end); } - std::string getForwardDecl() const { return "void " + getIdentifier() + "();\n"; } - std::string getCallStatement() const { return getIdentifier() + "()"; } + std::string getIdentifier() const { return fmt::format("fn_{}_{}", start, end); } + // To handle weird control flow, we have to return from each function a bool that indicates whether or not the shader reached an end + // instruction and should thus terminate. This is necessary for games like Rayman and Gravity Falls, which have "END" instructions called + // from within functions deep in the callstack + std::string getForwardDecl() const { return fmt::format("bool fn_{}_{}();\n", start, end); } + std::string getCallStatement() const { return fmt::format("fn_{}_{}()", start, end); } }; std::set functions{}; @@ -93,9 +99,11 @@ namespace PICA::ShaderGen { API api; Language language; + bool compilationError = false; void compileInstruction(u32& pc, bool& finished); - void compileRange(const AddressRange& range); + // Compile range "range" and returns the end PC or if we're "finished" with the program (called an END instruction) + std::pair compileRange(const AddressRange& range); void callFunction(const Function& function); const Function* findFunction(const AddressRange& range); @@ -105,6 +113,7 @@ namespace PICA::ShaderGen { std::string getDest(u32 dest) const; std::string getSwizzlePattern(u32 swizzle) const; std::string getDestSwizzle(u32 destinationMask) const; + const char* getCondition(u32 cond, u32 refX, u32 refY); void setDest(u32 operandDescriptor, const std::string& dest, const std::string& value); // Returns if the instruction uses the typical register encodings most instructions use diff --git a/include/PICA/shader_gen.hpp b/include/PICA/shader_gen.hpp index f938b558..b6751e05 100644 --- a/include/PICA/shader_gen.hpp +++ b/include/PICA/shader_gen.hpp @@ -3,6 +3,7 @@ #include "PICA/gpu.hpp" #include "PICA/pica_frag_config.hpp" +#include "PICA/pica_vert_config.hpp" #include "PICA/regs.hpp" #include "PICA/shader_gen_types.hpp" #include "helpers.hpp" @@ -31,6 +32,8 @@ namespace PICA::ShaderGen { FragmentGenerator(API api, Language language) : api(api), language(language) {} std::string generate(const PICA::FragmentConfig& config, void* driverInfo = nullptr); std::string getDefaultVertexShader(); + // For when PICA shader is acceleration is enabled. Turn the PICA shader source into a proper vertex shader + std::string getVertexShaderAccelerated(const std::string& picaSource, const PICA::VertConfig& vertConfig, bool usingUbershader); void setTarget(API api, Language language) { this->api = api; diff --git a/include/PICA/shader_unit.hpp b/include/PICA/shader_unit.hpp index d8d93160..80e01346 100644 --- a/include/PICA/shader_unit.hpp +++ b/include/PICA/shader_unit.hpp @@ -2,10 +2,9 @@ #include "PICA/shader.hpp" class ShaderUnit { - -public: - PICAShader vs; // Vertex shader - PICAShader gs; // Geometry shader + public: + PICAShader vs; // Vertex shader + PICAShader gs; // Geometry shader ShaderUnit() : vs(ShaderType::Vertex), gs(ShaderType::Geometry) {} void reset(); diff --git a/include/align.hpp b/include/align.hpp new file mode 100644 index 00000000..6b79a656 --- /dev/null +++ b/include/align.hpp @@ -0,0 +1,99 @@ +// SPDX-FileCopyrightText: 2019-2022 Connor McLaughlin +// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0) + +#pragma once + +#include + +#include "helpers.hpp" + +#ifdef _MSC_VER +#include +#endif + +namespace Common { + template + constexpr bool isAligned(T value, unsigned int alignment) { + return (value % static_cast(alignment)) == 0; + } + + template + constexpr T alignUp(T value, unsigned int alignment) { + return (value + static_cast(alignment - 1)) / static_cast(alignment) * static_cast(alignment); + } + + template + constexpr T alignDown(T value, unsigned int alignment) { + return value / static_cast(alignment) * static_cast(alignment); + } + + template + constexpr bool isAlignedPow2(T value, unsigned int alignment) { + return (value & static_cast(alignment - 1)) == 0; + } + + template + constexpr T alignUpPow2(T value, unsigned int alignment) { + return (value + static_cast(alignment - 1)) & static_cast(~static_cast(alignment - 1)); + } + + template + constexpr T alignDownPow2(T value, unsigned int alignment) { + return value & static_cast(~static_cast(alignment - 1)); + } + + template + constexpr bool isPow2(T value) { + return (value & (value - 1)) == 0; + } + + template + constexpr T previousPow2(T value) { + if (value == static_cast(0)) return 0; + + value |= (value >> 1); + value |= (value >> 2); + value |= (value >> 4); + if constexpr (sizeof(T) >= 16) value |= (value >> 8); + if constexpr (sizeof(T) >= 32) value |= (value >> 16); + if constexpr (sizeof(T) >= 64) value |= (value >> 32); + return value - (value >> 1); + } + + template + constexpr T nextPow2(T value) { + // https://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 + if (value == static_cast(0)) return 0; + + value--; + value |= (value >> 1); + value |= (value >> 2); + value |= (value >> 4); + if constexpr (sizeof(T) >= 16) value |= (value >> 8); + if constexpr (sizeof(T) >= 32) value |= (value >> 16); + if constexpr (sizeof(T) >= 64) value |= (value >> 32); + value++; + return value; + } + + ALWAYS_INLINE static void* alignedMalloc(size_t size, size_t alignment) { +#ifdef _MSC_VER + return _aligned_malloc(size, alignment); +#else + // Unaligned sizes are slow on macOS. +#ifdef __APPLE__ + if (isPow2(alignment)) size = (size + alignment - 1) & ~(alignment - 1); +#endif + void* ret = nullptr; + return (posix_memalign(&ret, alignment, size) == 0) ? ret : nullptr; +#endif + } + + ALWAYS_INLINE static void alignedFree(void* ptr) { +#ifdef _MSC_VER + _aligned_free(ptr); +#else + free(ptr); +#endif + } +} // namespace Common \ No newline at end of file diff --git a/include/config.hpp b/include/config.hpp index 459f0907..a8ba8946 100644 --- a/include/config.hpp +++ b/include/config.hpp @@ -20,11 +20,13 @@ struct EmulatorConfig { #else static constexpr bool ubershaderDefault = true; #endif - + static constexpr bool accelerateShadersDefault = true; + bool shaderJitEnabled = shaderJitDefault; - bool discordRpcEnabled = false; bool useUbershaders = ubershaderDefault; + bool accelerateShaders = accelerateShadersDefault; bool accurateShaderMul = false; + bool discordRpcEnabled = false; // Toggles whether to force shadergen when there's more than N lights active and we're using the ubershader, for better performance bool forceShadergenForLights = true; diff --git a/include/renderdoc.hpp b/include/renderdoc.hpp index 94a0f494..ea2c8a3d 100644 --- a/include/renderdoc.hpp +++ b/include/renderdoc.hpp @@ -35,4 +35,35 @@ namespace Renderdoc { static void setOutputDir(const std::string& path, const std::string& prefix) {} static constexpr bool isSupported() { return false; } } // namespace Renderdoc -#endif \ No newline at end of file +#endif + +namespace Renderdoc { + // RAII scope class that encloses a Renderdoc capture, as long as it's triggered by triggerCapture + struct Scope { + Scope() { Renderdoc::startCapture(); } + ~Scope() { Renderdoc::endCapture(); } + + Scope(const Scope&) = delete; + Scope& operator=(const Scope&) = delete; + + Scope(Scope&&) = delete; + Scope& operator=(const Scope&&) = delete; + }; + + // RAII scope class that encloses a Renderdoc capture. Unlike regular Scope it doesn't wait for a trigger, it will always issue the capture + // trigger on its own and take a capture + struct InstantScope { + InstantScope() { + Renderdoc::triggerCapture(); + Renderdoc::startCapture(); + } + + ~InstantScope() { Renderdoc::endCapture(); } + + InstantScope(const InstantScope&) = delete; + InstantScope& operator=(const InstantScope&) = delete; + + InstantScope(InstantScope&&) = delete; + InstantScope& operator=(const InstantScope&&) = delete; + }; +} // namespace Renderdoc \ No newline at end of file diff --git a/include/renderer.hpp b/include/renderer.hpp index 569a730b..5a1efc77 100644 --- a/include/renderer.hpp +++ b/include/renderer.hpp @@ -1,9 +1,10 @@ #pragma once #include +#include #include #include -#include +#include "PICA/draw_acceleration.hpp" #include "PICA/pica_vertex.hpp" #include "PICA/regs.hpp" #include "helpers.hpp" @@ -21,9 +22,11 @@ enum class RendererType : s8 { }; struct EmulatorConfig; -class GPU; struct SDL_Window; +class GPU; +class ShaderUnit; + class Renderer { protected: GPU& gpu; @@ -77,7 +80,11 @@ class Renderer { virtual std::string getUbershader() { return ""; } virtual void setUbershader(const std::string& shader) {} - virtual void setUbershaderSetting(bool value) {} + // This function is called on every draw call before parsing vertex data. + // It is responsible for things like looking up which vertex/fragment shaders to use, recompiling them if they don't exist, choosing between + // ubershaders and shadergen, and so on. + // Returns whether this draw is eligible for using hardware-accelerated shaders or if shaders should run on the CPU + virtual bool prepareForDraw(ShaderUnit& shaderUnit, PICA::DrawAcceleration* accel) { return false; } // Functions for initializing the graphics context for the Qt frontend, where we don't have the convenience of SDL_Window #ifdef PANDA3DS_FRONTEND_QT diff --git a/include/renderer_gl/gl_state.hpp b/include/renderer_gl/gl_state.hpp index e5591ea0..4085cabc 100644 --- a/include/renderer_gl/gl_state.hpp +++ b/include/renderer_gl/gl_state.hpp @@ -38,7 +38,6 @@ struct GLStateManager { GLuint stencilMask; GLuint boundVAO; - GLuint boundVBO; GLuint currentProgram; GLuint boundUBO; @@ -173,13 +172,6 @@ struct GLStateManager { } } - void bindVBO(GLuint handle) { - if (boundVBO != handle) { - boundVBO = handle; - glBindBuffer(GL_ARRAY_BUFFER, handle); - } - } - void useProgram(GLuint handle) { if (currentProgram != handle) { currentProgram = handle; @@ -195,7 +187,6 @@ struct GLStateManager { } void bindVAO(const OpenGL::VertexArray& vao) { bindVAO(vao.handle()); } - void bindVBO(const OpenGL::VertexBuffer& vbo) { bindVBO(vbo.handle()); } void useProgram(const OpenGL::Program& program) { useProgram(program.handle()); } void setColourMask(bool r, bool g, bool b, bool a) { diff --git a/include/renderer_gl/renderer_gl.hpp b/include/renderer_gl/renderer_gl.hpp index 07069536..fab239f2 100644 --- a/include/renderer_gl/renderer_gl.hpp +++ b/include/renderer_gl/renderer_gl.hpp @@ -3,15 +3,20 @@ #include #include #include +#include +#include #include #include +#include #include "PICA/float_types.hpp" #include "PICA/pica_frag_config.hpp" #include "PICA/pica_hash.hpp" +#include "PICA/pica_vert_config.hpp" #include "PICA/pica_vertex.hpp" #include "PICA/regs.hpp" #include "PICA/shader_gen.hpp" +#include "gl/stream_buffer.h" #include "gl_driver.hpp" #include "gl_state.hpp" #include "helpers.hpp" @@ -29,9 +34,11 @@ class RendererGL final : public Renderer { OpenGL::Program triangleProgram; OpenGL::Program displayProgram; - OpenGL::VertexArray vao; + // VAO for when not using accelerated vertex shaders. Contains attribute declarations matching to the PICA fixed function fragment attributes + OpenGL::VertexArray defaultVAO; + // VAO for when using accelerated vertex shaders. The PICA vertex shader inputs are passed as attributes without CPU processing. + OpenGL::VertexArray hwShaderVAO; OpenGL::VertexBuffer vbo; - bool enableUbershader = true; // Data struct { @@ -54,6 +61,21 @@ class RendererGL final : public Renderer { float oldDepthScale = -1.0; float oldDepthOffset = 0.0; bool oldDepthmapEnable = false; + // Set by prepareForDraw, tells us whether the current draw is using hw-accelerated shader + bool usingAcceleratedShader = false; + bool performIndexedRender = false; + bool usingShortIndices = false; + + // Set by prepareForDraw, metadata for indexed renders + GLuint minimumIndex = 0; + GLuint maximumIndex = 0; + void* hwIndexBufferOffset = nullptr; + + // When doing hw shaders, we cache which attributes are enabled in our VAO to avoid having to enable/disable all attributes on each draw + u32 previousAttributeMask = 0; + + // Cached pointer to the current vertex shader when using HW accelerated shaders + OpenGL::Shader* generatedVertexShader = nullptr; SurfaceCache depthBufferCache; SurfaceCache colourBufferCache; @@ -71,12 +93,51 @@ class RendererGL final : public Renderer { // We can compile this once and then link it with all other generated fragment shaders OpenGL::Shader defaultShadergenVs; GLuint shadergenFragmentUBO; + // UBO for uploading the PICA uniforms when using hw shaders + GLuint hwShaderUniformUBO; + + using StreamBuffer = OpenGLStreamBuffer; + std::unique_ptr hwVertexBuffer; + std::unique_ptr hwIndexBuffer; + + // Cache of fixed attribute values so that we don't do any duplicate updates + std::array, 16> fixedAttrValues; // Cached recompiled fragment shader struct CachedProgram { OpenGL::Program program; }; - std::unordered_map shaderCache; + + struct ShaderCache { + std::unordered_map> vertexShaderCache; + std::unordered_map fragmentShaderCache; + + // Program cache indexed by GLuints for the vertex and fragment shader to use + // Top 32 bits are the vertex shader GLuint, bottom 32 bits are the fs GLuint + std::unordered_map programCache; + + void clear() { + for (auto& it : programCache) { + CachedProgram& cachedProgram = it.second; + cachedProgram.program.free(); + } + + for (auto& it : vertexShaderCache) { + if (it.second.has_value()) { + it.second->free(); + } + } + + for (auto& it : fragmentShaderCache) { + it.second.free(); + } + + programCache.clear(); + vertexShaderCache.clear(); + fragmentShaderCache.clear(); + } + }; + ShaderCache shaderCache; OpenGL::Framebuffer getColourFBO(); OpenGL::Texture getTexture(Texture& tex); @@ -95,6 +156,8 @@ class RendererGL final : public Renderer { void updateFogLUT(); void initGraphicsContextInternal(); + void accelerateVertexUpload(ShaderUnit& shaderUnit, PICA::DrawAcceleration* accel); + public: RendererGL(GPU& gpu, const std::array& internalRegs, const std::array& externalRegs) : Renderer(gpu, internalRegs, externalRegs), fragShaderGen(PICA::ShaderGen::API::GL, PICA::ShaderGen::Language::GLSL) {} @@ -112,15 +175,13 @@ class RendererGL final : public Renderer { virtual bool supportsShaderReload() override { return true; } virtual std::string getUbershader() override; virtual void setUbershader(const std::string& shader) override; - - virtual void setUbershaderSetting(bool value) override { enableUbershader = value; } + virtual bool prepareForDraw(ShaderUnit& shaderUnit, PICA::DrawAcceleration* accel) override; std::optional getColourBuffer(u32 addr, PICA::ColorFmt format, u32 width, u32 height, bool createIfnotFound = true); // Note: The caller is responsible for deleting the currently bound FBO before calling this void setFBO(uint handle) { screenFramebuffer.m_handle = handle; } void resetStateManager() { gl.reset(); } - void clearShaderCache(); void initUbershader(OpenGL::Program& program); #ifdef PANDA3DS_FRONTEND_QT diff --git a/src/config.cpp b/src/config.cpp index 70f2189c..331ab137 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -67,6 +67,7 @@ void EmulatorConfig::load() { vsyncEnabled = toml::find_or(gpu, "EnableVSync", true); useUbershaders = toml::find_or(gpu, "UseUbershaders", ubershaderDefault); accurateShaderMul = toml::find_or(gpu, "AccurateShaderMultiplication", false); + accelerateShaders = toml::find_or(gpu, "AccelerateShaders", accelerateShadersDefault); forceShadergenForLights = toml::find_or(gpu, "ForceShadergenForLighting", true); lightShadergenThreshold = toml::find_or(gpu, "ShadergenLightThreshold", 1); @@ -141,6 +142,7 @@ void EmulatorConfig::save() { data["GPU"]["UseUbershaders"] = useUbershaders; data["GPU"]["ForceShadergenForLighting"] = forceShadergenForLights; data["GPU"]["ShadergenLightThreshold"] = lightShadergenThreshold; + data["GPU"]["AccelerateShaders"] = accelerateShaders; data["GPU"]["EnableRenderdoc"] = enableRenderdoc; data["Audio"]["DSPEmulation"] = std::string(Audio::DSPCore::typeToString(dspType)); diff --git a/src/core/PICA/draw_acceleration.cpp b/src/core/PICA/draw_acceleration.cpp new file mode 100644 index 00000000..1850d819 --- /dev/null +++ b/src/core/PICA/draw_acceleration.cpp @@ -0,0 +1,148 @@ +#include "PICA/draw_acceleration.hpp" + +#include +#include + +#include "PICA/gpu.hpp" +#include "PICA/regs.hpp" + +void GPU::getAcceleratedDrawInfo(PICA::DrawAcceleration& accel, bool indexed) { + accel.indexed = indexed; + accel.totalAttribCount = totalAttribCount; + accel.enabledAttributeMask = 0; + + const u32 vertexBase = ((regs[PICA::InternalRegs::VertexAttribLoc] >> 1) & 0xfffffff) * 16; + const u32 vertexCount = regs[PICA::InternalRegs::VertexCountReg]; // Total # of vertices to transfer + + if (indexed) { + u32 indexBufferConfig = regs[PICA::InternalRegs::IndexBufferConfig]; + u32 indexBufferPointer = vertexBase + (indexBufferConfig & 0xfffffff); + + u8* indexBuffer = getPointerPhys(indexBufferPointer); + u16 minimumIndex = std::numeric_limits::max(); + u16 maximumIndex = 0; + + // Check whether the index buffer uses u16 indices or u8 + accel.useShortIndices = Helpers::getBit<31>(indexBufferConfig); // Indicates whether vert indices are 16-bit or 8-bit + + // Calculate the minimum and maximum indices used in the index buffer, so we'll only upload them + if (accel.useShortIndices) { + u16* indexBuffer16 = reinterpret_cast(indexBuffer); + + for (int i = 0; i < vertexCount; i++) { + u16 index = indexBuffer16[i]; + minimumIndex = std::min(minimumIndex, index); + maximumIndex = std::max(maximumIndex, index); + } + } else { + for (int i = 0; i < vertexCount; i++) { + u16 index = u16(indexBuffer[i]); + minimumIndex = std::min(minimumIndex, index); + maximumIndex = std::max(maximumIndex, index); + } + } + + accel.indexBuffer = indexBuffer; + accel.minimumIndex = minimumIndex; + accel.maximumIndex = maximumIndex; + } else { + accel.indexBuffer = nullptr; + accel.minimumIndex = regs[PICA::InternalRegs::VertexOffsetReg]; + accel.maximumIndex = accel.minimumIndex + vertexCount - 1; + } + + const u64 vertexCfg = u64(regs[PICA::InternalRegs::AttribFormatLow]) | (u64(regs[PICA::InternalRegs::AttribFormatHigh]) << 32); + const u64 inputAttrCfg = getVertexShaderInputConfig(); + + u32 attrCount = 0; + u32 loaderOffset = 0; + accel.vertexDataSize = 0; + accel.totalLoaderCount = 0; + + for (int i = 0; i < PICA::DrawAcceleration::maxLoaderCount; i++) { + auto& loaderData = attributeInfo[i]; // Get information for this attribute loader + + // This loader is empty, skip it + if (loaderData.componentCount == 0 || loaderData.size == 0) { + continue; + } + + auto& loader = accel.loaders[accel.totalLoaderCount++]; + + // The size of the loader in bytes is equal to the bytes supplied for 1 vertex, multiplied by the number of vertices we'll be uploading + // Which is equal to maximumIndex - minimumIndex + 1 + const u32 bytes = loaderData.size * (accel.maximumIndex - accel.minimumIndex + 1); + loader.size = bytes; + + // Add it to the total vertex data size, aligned to 4 bytes. + accel.vertexDataSize += (bytes + 3) & ~3; + + // Get a pointer to the data where this loader's data is stored + const u32 loaderAddress = vertexBase + loaderData.offset + (accel.minimumIndex * loaderData.size); + loader.data = getPointerPhys(loaderAddress); + + u64 attrCfg = loaderData.getConfigFull(); // Get config1 | (config2 << 32) + u32 attributeOffset = 0; + + for (int component = 0; component < loaderData.componentCount; component++) { + uint attributeIndex = (attrCfg >> (component * 4)) & 0xf; // Get index of attribute in vertexCfg + + // Vertex attributes used as padding + // 12, 13, 14 and 15 are equivalent to 4, 8, 12 and 16 bytes of padding respectively + if (attributeIndex >= 12) [[unlikely]] { + // Align attribute address up to a 4 byte boundary + attributeOffset = (attributeOffset + 3) & -4; + attributeOffset += (attributeIndex - 11) << 2; + continue; + } + + const u32 attribInfo = (vertexCfg >> (attributeIndex * 4)) & 0xf; + const u32 attribType = attribInfo & 0x3; // Type of attribute (sbyte/ubyte/short/float) + const u32 size = (attribInfo >> 2) + 1; // Total number of components + + // Size of each component based on the attribute type + static constexpr u32 sizePerComponent[4] = {1, 1, 2, 4}; + const u32 inputReg = (inputAttrCfg >> (attributeIndex * 4)) & 0xf; + // Mark the attribute as enabled + accel.enabledAttributeMask |= 1 << inputReg; + + auto& attr = accel.attributeInfo[inputReg]; + attr.componentCount = size; + attr.offset = attributeOffset + loaderOffset; + attr.stride = loaderData.size; + attr.type = attribType; + attributeOffset += size * sizePerComponent[attribType]; + } + + loaderOffset += loader.size; + } + + u32 fixedAttributes = fixedAttribMask; + accel.fixedAttributes = 0; + + // Fetch values for all fixed attributes using CLZ on the fixed attribute mask to find the attributes that are actually fixed + while (fixedAttributes != 0) { + // Get index of next fixed attribute and turn it off + const u32 index = std::countr_zero(fixedAttributes); + const u32 mask = 1u << index; + fixedAttributes ^= mask; + + // PICA register this fixed attribute is meant to go to + const u32 inputReg = (inputAttrCfg >> (index * 4)) & 0xf; + const u32 inputRegMask = 1u << inputReg; + + // If this input reg is already used for a non-fixed attribute then it will not be replaced by a fixed attribute + if ((accel.enabledAttributeMask & inputRegMask) == 0) { + vec4f& fixedAttr = shaderUnit.vs.fixedAttributes[index]; + auto& attr = accel.attributeInfo[inputReg]; + + accel.fixedAttributes |= inputRegMask; + + for (int i = 0; i < 4; i++) { + attr.fixedValue[i] = fixedAttr[i].toFloat32(); + } + } + } + + accel.canBeAccelerated = true; +} \ No newline at end of file diff --git a/src/core/PICA/gpu.cpp b/src/core/PICA/gpu.cpp index 3c4d4c5b..2624903f 100644 --- a/src/core/PICA/gpu.cpp +++ b/src/core/PICA/gpu.cpp @@ -117,37 +117,62 @@ void GPU::reset() { externalRegs[Framebuffer1Config] = static_cast(PICA::ColorFmt::RGB8); externalRegs[Framebuffer1Select] = 0; - renderer->setUbershaderSetting(config.useUbershaders); renderer->reset(); } -// Call the correct version of drawArrays based on whether this is an indexed draw (first template parameter) -// And whether we are going to use the shader JIT (second template parameter) -void GPU::drawArrays(bool indexed) { - const bool shaderJITEnabled = ShaderJIT::isAvailable() && config.shaderJitEnabled; - - if (indexed) { - if (shaderJITEnabled) - drawArrays(); - else - drawArrays(); - } else { - if (shaderJITEnabled) - drawArrays(); - else - drawArrays(); - } -} - static std::array vertices; -template -void GPU::drawArrays() { - if constexpr (useShaderJIT) { - shaderJIT.prepare(shaderUnit.vs); +// Call the correct version of drawArrays based on whether this is an indexed draw (first template parameter) +// And whether we are going to use the shader JIT (second template parameter) +void GPU::drawArrays(bool indexed) { + PICA::DrawAcceleration accel; + + if (config.accelerateShaders) { + // If we are potentially going to use hw shaders, gather necessary to do vertex fetch, index buffering, etc on the GPU + // This includes parsing which vertices to upload, getting pointers to the index buffer data & vertex data, and so on + getAcceleratedDrawInfo(accel, indexed); } - setVsOutputMask(regs[PICA::InternalRegs::VertexShaderOutputMask]); + const bool hwShaders = renderer->prepareForDraw(shaderUnit, &accel); + + if (hwShaders) { + // Hardware shaders have their own accelerated code path for draws, so they skip everything here + const PICA::PrimType primType = static_cast(Helpers::getBits<8, 2>(regs[PICA::InternalRegs::PrimitiveConfig])); + // Total # of vertices to render + const u32 vertexCount = regs[PICA::InternalRegs::VertexCountReg]; + + // Note: In the hardware shader path the vertices span shouldn't actually be used as the renderer will perform its own attribute fetching + renderer->drawVertices(primType, std::span(vertices).first(vertexCount)); + } else { + const bool shaderJITEnabled = ShaderJIT::isAvailable() && config.shaderJitEnabled; + + if (indexed) { + if (shaderJITEnabled) { + drawArrays(); + } else { + drawArrays(); + } + } else { + if (shaderJITEnabled) { + drawArrays(); + } else { + drawArrays(); + } + } + } +} + +template +void GPU::drawArrays() { + if constexpr (mode == ShaderExecMode::JIT) { + shaderJIT.prepare(shaderUnit.vs); + } else if constexpr (mode == ShaderExecMode::Hardware) { + // Hardware shaders have their own accelerated code path for draws, so they're not meant to take this path + Helpers::panic("GPU::DrawArrays: Hardware shaders shouldn't take this path!"); + } + + // We can have up to 16 attributes, each one consisting of 4 floats + constexpr u32 maxAttrSizeInFloats = 16 * 4; // Base address for vertex attributes // The vertex base is always on a quadword boundary because the PICA does weird alignment shit any time possible @@ -312,8 +337,6 @@ void GPU::drawArrays() { } // Fill the remaining attribute lanes with default parameters (1.0 for alpha/w, 0.0) for everything else - // Corgi does this although I'm not sure if it's actually needed for anything. - // TODO: Find out while (component < 4) { attribute[component] = (component == 3) ? f24::fromFloat32(1.0) : f24::fromFloat32(0.0); component++; @@ -327,13 +350,13 @@ void GPU::drawArrays() { // Before running the shader, the PICA maps the fetched attributes from the attribute registers to the shader input registers // Based on the SH_ATTRIBUTES_PERMUTATION registers. - // Ie it might attribute #0 to v2, #1 to v7, etc + // Ie it might map attribute #0 to v2, #1 to v7, etc for (int j = 0; j < totalAttribCount; j++) { const u32 mapping = (inputAttrCfg >> (j * 4)) & 0xf; std::memcpy(&shaderUnit.vs.inputs[mapping], ¤tAttributes[j], sizeof(vec4f)); } - if constexpr (useShaderJIT) { + if constexpr (mode == ShaderExecMode::JIT) { shaderJIT.run(shaderUnit.vs); } else { shaderUnit.vs.run(); diff --git a/src/core/PICA/regs.cpp b/src/core/PICA/regs.cpp index f805de60..4c865d12 100644 --- a/src/core/PICA/regs.cpp +++ b/src/core/PICA/regs.cpp @@ -249,6 +249,7 @@ void GPU::writeInternalReg(u32 index, u32 value, u32 mask) { // If we've reached 3 verts, issue a draw call // Handle rendering depending on the primitive type if (immediateModeVertIndex == 3) { + renderer->prepareForDraw(shaderUnit, nullptr); renderer->drawVertices(PICA::PrimType::TriangleList, immediateModeVertices); switch (primType) { @@ -300,7 +301,7 @@ void GPU::writeInternalReg(u32 index, u32 value, u32 mask) { } case VertexBoolUniform: { - shaderUnit.vs.boolUniform = value & 0xffff; + shaderUnit.vs.uploadBoolUniform(value & 0xffff); break; } diff --git a/src/core/PICA/shader_decompiler.cpp b/src/core/PICA/shader_decompiler.cpp index 482aa36c..467c4727 100644 --- a/src/core/PICA/shader_decompiler.cpp +++ b/src/core/PICA/shader_decompiler.cpp @@ -1,5 +1,10 @@ #include "PICA/shader_decompiler.hpp" +#include + +#include +#include + #include "config.hpp" using namespace PICA; @@ -13,11 +18,45 @@ void ControlFlow::analyze(const PICAShader& shader, u32 entrypoint) { analysisFailed = false; const Function* function = addFunction(shader, entrypoint, PICAShader::maxInstructionCount); - if (function == nullptr) { + if (function == nullptr || function->exitMode != ExitMode::AlwaysEnd) { analysisFailed = true; } } +// Helpers for merging parallel/series exit methods from Citra +// Merges exit method of two parallel branches. +static ExitMode exitParallel(ExitMode a, ExitMode b) { + if (a == ExitMode::Unknown) { + return b; + } + else if (b == ExitMode::Unknown) { + return a; + } + else if (a == b) { + return a; + } + return ExitMode::Conditional; +} + +// Cascades exit method of two blocks of code. +static ExitMode exitSeries(ExitMode a, ExitMode b) { + assert(a != ExitMode::AlwaysEnd); + + if (a == ExitMode::Unknown) { + return ExitMode::Unknown; + } + + if (a == ExitMode::AlwaysReturn) { + return b; + } + + if (b == ExitMode::Unknown || b == ExitMode::AlwaysEnd) { + return ExitMode::AlwaysEnd; + } + + return ExitMode::Conditional; +} + ExitMode ControlFlow::analyzeFunction(const PICAShader& shader, u32 start, u32 end, Function::Labels& labels) { // Initialize exit mode to unknown by default, in order to detect things like unending loops auto [it, inserted] = exitMap.emplace(AddressRange(start, end), ExitMode::Unknown); @@ -32,25 +71,132 @@ ExitMode ControlFlow::analyzeFunction(const PICAShader& shader, u32 start, u32 e const u32 opcode = instruction >> 26; switch (opcode) { - case ShaderOpcodes::JMPC: Helpers::panic("Unimplemented control flow operation (JMPC)"); - case ShaderOpcodes::JMPU: Helpers::panic("Unimplemented control flow operation (JMPU)"); - case ShaderOpcodes::IFU: Helpers::panic("Unimplemented control flow operation (IFU)"); - case ShaderOpcodes::IFC: Helpers::panic("Unimplemented control flow operation (IFC)"); - case ShaderOpcodes::CALL: Helpers::panic("Unimplemented control flow operation (CALL)"); - case ShaderOpcodes::CALLC: Helpers::panic("Unimplemented control flow operation (CALLC)"); - case ShaderOpcodes::CALLU: Helpers::panic("Unimplemented control flow operation (CALLU)"); - case ShaderOpcodes::LOOP: Helpers::panic("Unimplemented control flow operation (LOOP)"); - case ShaderOpcodes::END: it->second = ExitMode::AlwaysEnd; return it->second; + case ShaderOpcodes::JMPC: + case ShaderOpcodes::JMPU: { + const u32 dest = getBits<10, 12>(instruction); + // Register this jump address to our outLabels set + labels.insert(dest); + // This opens up 2 parallel paths of execution + auto branchTakenExit = analyzeFunction(shader, dest, end, labels); + auto branchNotTakenExit = analyzeFunction(shader, pc + 1, end, labels); + it->second = exitParallel(branchTakenExit, branchNotTakenExit); + return it->second; + } + + case ShaderOpcodes::IFU: + case ShaderOpcodes::IFC: { + const u32 num = instruction & 0xff; + const u32 dest = getBits<10, 12>(instruction); + + const Function* branchTakenFunc = addFunction(shader, pc + 1, dest); + // Check if analysis of the branch taken func failed and return unknown if it did + if (analysisFailed) { + it->second = ExitMode::Unknown; + return it->second; + } + + // Next analyze the not taken func + ExitMode branchNotTakenExitMode = ExitMode::AlwaysReturn; + if (num != 0) { + const Function* branchNotTakenFunc = addFunction(shader, dest, dest + num); + // Check if analysis failed and return unknown if it did + if (analysisFailed) { + it->second = ExitMode::Unknown; + return it->second; + } + + branchNotTakenExitMode = branchNotTakenFunc->exitMode; + } + + auto parallel = exitParallel(branchTakenFunc->exitMode, branchNotTakenExitMode); + // Both branches of the if/else end, so there's nothing after the call + if (parallel == ExitMode::AlwaysEnd) { + it->second = parallel; + return it->second; + } else { + ExitMode afterConditional = analyzeFunction(shader, dest + num, end, labels); + ExitMode conditionalExitMode = exitSeries(parallel, afterConditional); + it->second = conditionalExitMode; + return it->second; + } + break; + } + + case ShaderOpcodes::CALL: { + const u32 num = instruction & 0xff; + const u32 dest = getBits<10, 12>(instruction); + const Function* calledFunction = addFunction(shader, dest, dest + num); + + // Check if analysis of the branch taken func failed and return unknown if it did + if (analysisFailed) { + it->second = ExitMode::Unknown; + return it->second; + } + + if (calledFunction->exitMode == ExitMode::AlwaysEnd) { + it->second = ExitMode::AlwaysEnd; + return it->second; + } + + // Exit mode of the remainder of this function, after we return from the callee + const ExitMode postCallExitMode = analyzeFunction(shader, pc + 1, end, labels); + const ExitMode exitMode = exitSeries(calledFunction->exitMode, postCallExitMode); + + it->second = exitMode; + return exitMode; + } + + case ShaderOpcodes::CALLC: + case ShaderOpcodes::CALLU: { + const u32 num = instruction & 0xff; + const u32 dest = getBits<10, 12>(instruction); + const Function* calledFunction = addFunction(shader, dest, dest + num); + + // Check if analysis of the branch taken func failed and return unknown if it did + if (analysisFailed) { + it->second = ExitMode::Unknown; + return it->second; + } + + // Exit mode of the remainder of this function, after we return from the callee + const ExitMode postCallExitMode = analyzeFunction(shader, pc + 1, end, labels); + const ExitMode exitMode = exitSeries(exitParallel(calledFunction->exitMode, ExitMode::AlwaysReturn), postCallExitMode); + + it->second = exitMode; + return exitMode; + } + + case ShaderOpcodes::LOOP: { + u32 dest = getBits<10, 12>(instruction); + const Function* loopFunction = addFunction(shader, pc + 1, dest + 1); + if (analysisFailed) { + it->second = ExitMode::Unknown; + return it->second; + } + + if (loopFunction->exitMode == ExitMode::AlwaysEnd) { + it->second = ExitMode::AlwaysEnd; + return it->second; + } + + const ExitMode afterLoop = analyzeFunction(shader, dest + 1, end, labels); + const ExitMode exitMode = exitSeries(loopFunction->exitMode, afterLoop); + it->second = exitMode; + return it->second; + } + + case ShaderOpcodes::END: it->second = ExitMode::AlwaysEnd; return it->second; default: break; } } // A function without control flow instructions will always reach its "return point" and return - return ExitMode::AlwaysReturn; + it->second = ExitMode::AlwaysReturn; + return it->second; } -void ShaderDecompiler::compileRange(const AddressRange& range) { +std::pair ShaderDecompiler::compileRange(const AddressRange& range) { u32 pc = range.start; const u32 end = range.end >= range.start ? range.end : PICAShader::maxInstructionCount; bool finished = false; @@ -58,6 +204,8 @@ void ShaderDecompiler::compileRange(const AddressRange& range) { while (pc < end && !finished) { compileInstruction(pc, finished); } + + return std::make_pair(pc, finished); } const Function* ShaderDecompiler::findFunction(const AddressRange& range) { @@ -71,20 +219,43 @@ const Function* ShaderDecompiler::findFunction(const AddressRange& range) { } void ShaderDecompiler::writeAttributes() { + // Annoyingly, GLES does not support having an array as an input attribute, so declare each attribute separately for now decompiledShader += R"( - layout(location = 0) in vec4 inputs[8]; + layout(location = 0) in vec4 attr0; + layout(location = 1) in vec4 attr1; + layout(location = 2) in vec4 attr2; + layout(location = 3) in vec4 attr3; + layout(location = 4) in vec4 attr4; + layout(location = 5) in vec4 attr5; + layout(location = 6) in vec4 attr6; + layout(location = 7) in vec4 attr7; + layout(location = 8) in vec4 attr8; + layout(location = 9) in vec4 attr9; + layout(location = 10) in vec4 attr10; + layout(location = 11) in vec4 attr11; + layout(location = 12) in vec4 attr12; + layout(location = 13) in vec4 attr13; + layout(location = 14) in vec4 attr14; + layout(location = 15) in vec4 attr15; - layout(std140) uniform PICAShaderUniforms { - vec4 uniform_float[96]; - uvec4 uniform_int; - uint uniform_bool; - }; - - vec4 temp_registers[16]; - vec4 dummy_vec = vec4(0.0); + layout(std140) uniform PICAShaderUniforms { + vec4 uniform_f[96]; + uvec4 uniform_i; + uint uniform_bool; + }; + + vec4 temp[16]; + vec4 out_regs[16]; + vec4 dummy_vec = vec4(0.0); + ivec3 addr_reg = ivec3(0); + bvec2 cmp_reg = bvec2(false); + + vec4 uniform_indexed(int source, int offset) { + int clipped_offs = (offset >= -128 && offset <= 127) ? offset : 0; + uint index = uint(clipped_offs + source) & 127u; + return (index < 96u) ? uniform_f[index] : vec4(1.0); + } )"; - - decompiledShader += "\n"; } std::string ShaderDecompiler::decompile() { @@ -94,11 +265,14 @@ std::string ShaderDecompiler::decompile() { return ""; } - decompiledShader = ""; + compilationError = false; + decompiledShader.clear(); + // Reserve some memory for the shader string to avoid memory allocations + decompiledShader.reserve(256 * 1024); switch (api) { case API::GL: decompiledShader += "#version 410 core\n"; break; - case API::GLES: decompiledShader += "#version 300 es\n"; break; + case API::GLES: decompiledShader += "#version 300 es\nprecision mediump float;\nprecision mediump int;\n"; break; default: break; } @@ -109,7 +283,7 @@ std::string ShaderDecompiler::decompile() { decompiledShader += R"( vec4 safe_mul(vec4 a, vec4 b) { vec4 res = a * b; - return mix(res, mix(mix(vec4(0.0), res, isnan(rhs)), product, isnan(lhs)), isnan(res)); + return mix(res, mix(mix(vec4(0.0), res, isnan(b)), res, isnan(a)), isnan(res)); } )"; } @@ -121,17 +295,61 @@ std::string ShaderDecompiler::decompile() { decompiledShader += "void pica_shader_main() {\n"; AddressRange mainFunctionRange(entrypoint, PICAShader::maxInstructionCount); - callFunction(*findFunction(mainFunctionRange)); - decompiledShader += "}\n"; + auto mainFunc = findFunction(mainFunctionRange); - for (auto& func : controlFlow.functions) { - if (func.outLabels.size() > 0) { - Helpers::panic("Function with out labels"); + decompiledShader += mainFunc->getCallStatement() + ";\n}\n"; + + for (const Function& func : controlFlow.functions) { + if (func.outLabels.empty()) { + decompiledShader += fmt::format("bool {}() {{\n", func.getIdentifier()); + + auto [pc, finished] = compileRange(AddressRange(func.start, func.end)); + if (!finished) { + decompiledShader += "return false;"; + } + + decompiledShader += "}\n"; + } else { + auto labels = func.outLabels; + labels.insert(func.start); + + // If a function has jumps and "labels", this needs to be emulated using a switch-case, with the variable being switched on being the + // current PC + decompiledShader += fmt::format("bool {}() {{\n", func.getIdentifier()); + decompiledShader += fmt::format("uint pc = {}u;\n", func.start); + decompiledShader += "while(true){\nswitch(pc){\n"; + + for (u32 label : labels) { + decompiledShader += fmt::format("case {}u: {{", label); + // Fetch the next label whose address > label + auto it = labels.lower_bound(label + 1); + u32 next = (it == labels.end()) ? func.end : *it; + + auto [endPC, finished] = compileRange(AddressRange(label, next)); + if (endPC > next && !finished) { + labels.insert(endPC); + decompiledShader += fmt::format("pc = {}u; break;", endPC); + } + + // Fallthrough to next label + decompiledShader += "}\n"; + } + + decompiledShader += "default: return false;\n"; + // Exit the switch and loop + decompiledShader += "} }\n"; + + // Exit the function + decompiledShader += "return false;\n"; + decompiledShader += "}\n"; } + } - decompiledShader += "void " + func.getIdentifier() + "() {\n"; - compileRange(AddressRange(func.start, func.end)); - decompiledShader += "}\n"; + // We allow some leeway for "compilation errors" in addition to control flow errors, in cases where eg an unimplemented instruction + // or an instruction that we can't emulate in GLSL is found in the instruction stream. Just like control flow errors, these return an empty string + // and the renderer core will decide to use CPU shaders instead + if (compilationError) [[unlikely]] { + return ""; } return decompiledShader; @@ -139,30 +357,41 @@ std::string ShaderDecompiler::decompile() { std::string ShaderDecompiler::getSource(u32 source, [[maybe_unused]] u32 index) const { if (source < 0x10) { - return "inputs[" + std::to_string(source) + "]"; + return "attr" + std::to_string(source); } else if (source < 0x20) { - return "temp_registers[" + std::to_string(source - 0x10) + "]"; + return "temp[" + std::to_string(source - 0x10) + "]"; } else { const usize floatIndex = (source - 0x20) & 0x7f; - if (floatIndex >= 96) [[unlikely]] { - return "dummy_vec"; + if (index == 0) { + if (floatIndex >= 96) [[unlikely]] { + return "dummy_vec"; + } + return "uniform_f[" + std::to_string(floatIndex) + "]"; + } else { + static constexpr std::array offsets = {"0", "addr_reg.x", "addr_reg.y", "addr_reg.z"}; + return fmt::format("uniform_indexed({}, {})", floatIndex, offsets[index]); } - return "uniform_float[" + std::to_string(floatIndex) + "]"; } } std::string ShaderDecompiler::getDest(u32 dest) const { if (dest < 0x10) { - return "output_registers[" + std::to_string(dest) + "]"; + return "out_regs[" + std::to_string(dest) + "]"; } else if (dest < 0x20) { - return "temp_registers[" + std::to_string(dest - 0x10) + "]"; + return "temp[" + std::to_string(dest - 0x10) + "]"; } else { return "dummy_vec"; } } std::string ShaderDecompiler::getSwizzlePattern(u32 swizzle) const { + // If the swizzle field is this value then the swizzle pattern is .xyzw so we don't need a shuffle + static constexpr uint noSwizzle = 0x1B; + if (swizzle == noSwizzle) { + return ""; + } + static constexpr std::array names = {'x', 'y', 'z', 'w'}; std::string ret(". "); @@ -176,7 +405,6 @@ std::string ShaderDecompiler::getSwizzlePattern(u32 swizzle) const { std::string ShaderDecompiler::getDestSwizzle(u32 destinationMask) const { std::string ret = "."; - if (destinationMask & 0b1000) { ret += "x"; } @@ -208,11 +436,12 @@ void ShaderDecompiler::setDest(u32 operandDescriptor, const std::string& dest, c return; } - decompiledShader += dest + destSwizzle + " = "; - if (writtenLaneCount == 1) { - decompiledShader += "float(" + value + ");\n"; - } else { - decompiledShader += "vec" + std::to_string(writtenLaneCount) + "(" + value + ");\n"; + // Don't write destination swizzle if all lanes are getting written to + decompiledShader += fmt::format("{}{} = ", dest, writtenLaneCount == 4 ? "" : destSwizzle); + if (writtenLaneCount <= 3) { + decompiledShader += fmt::format("({}){};\n", value, destSwizzle); + } else if (writtenLaneCount == 4) { + decompiledShader += fmt::format("{};\n", value); } } @@ -246,26 +475,101 @@ void ShaderDecompiler::compileInstruction(u32& pc, bool& finished) { std::string dest = getDest(destIndex); - if (idx != 0) { - Helpers::panic("GLSL recompiler: Indexed instruction"); - } - - if (invertSources) { - Helpers::panic("GLSL recompiler: Inverted instruction"); - } - switch (opcode) { case ShaderOpcodes::MOV: setDest(operandDescriptor, dest, src1); break; - case ShaderOpcodes::ADD: setDest(operandDescriptor, dest, src1 + " + " + src2); break; - case ShaderOpcodes::MUL: setDest(operandDescriptor, dest, src1 + " * " + src2); break; - case ShaderOpcodes::MAX: setDest(operandDescriptor, dest, "max(" + src1 + ", " + src2 + ")"); break; - case ShaderOpcodes::MIN: setDest(operandDescriptor, dest, "min(" + src1 + ", " + src2 + ")"); break; + case ShaderOpcodes::ADD: setDest(operandDescriptor, dest, fmt::format("{} + {}", src1, src2)); break; + case ShaderOpcodes::MUL: + if (!config.accurateShaderMul) { + setDest(operandDescriptor, dest, fmt::format("{} * {}", src1, src2)); + } else { + setDest(operandDescriptor, dest, fmt::format("safe_mul({}, {})", src1, src2)); + } + break; + case ShaderOpcodes::MAX: setDest(operandDescriptor, dest, fmt::format("max({}, {})", src1, src2)); break; + case ShaderOpcodes::MIN: setDest(operandDescriptor, dest, fmt::format("min({}, {})", src1, src2)); break; - case ShaderOpcodes::DP3: setDest(operandDescriptor, dest, "vec4(dot(" + src1 + ".xyz, " + src2 + ".xyz))"); break; - case ShaderOpcodes::DP4: setDest(operandDescriptor, dest, "vec4(dot(" + src1 + ", " + src2 + "))"); break; - case ShaderOpcodes::RSQ: setDest(operandDescriptor, dest, "vec4(inversesqrt(" + src1 + ".x))"); break; + case ShaderOpcodes::DP3: + if (!config.accurateShaderMul) { + setDest(operandDescriptor, dest, fmt::format("vec4(dot({}.xyz, {}.xyz))", src1, src2)); + } else { + // A dot product between a and b is equivalent to the per-lane multiplication of a and b followed by a dot product with vec3(1.0) + setDest(operandDescriptor, dest, fmt::format("vec4(dot(safe_mul({}, {}).xyz, vec3(1.0)))", src1, src2)); + } + break; + case ShaderOpcodes::DP4: + if (!config.accurateShaderMul) { + setDest(operandDescriptor, dest, fmt::format("vec4(dot({}, {}))", src1, src2)); + } else { + // A dot product between a and b is equivalent to the per-lane multiplication of a and b followed by a dot product with vec4(1.0) + setDest(operandDescriptor, dest, fmt::format("vec4(dot(safe_mul({}, {}), vec4(1.0)))", src1, src2)); + } + break; + case ShaderOpcodes::FLR: setDest(operandDescriptor, dest, fmt::format("floor({})", src1)); break; + case ShaderOpcodes::RSQ: setDest(operandDescriptor, dest, fmt::format("vec4(inversesqrt({}.x))", src1)); break; + case ShaderOpcodes::RCP: setDest(operandDescriptor, dest, fmt::format("vec4(1.0 / {}.x)", src1)); break; + case ShaderOpcodes::LG2: setDest(operandDescriptor, dest, fmt::format("vec4(log2({}.x))", src1)); break; + case ShaderOpcodes::EX2: setDest(operandDescriptor, dest, fmt::format("vec4(exp2({}.x))", src1)); break; - default: Helpers::panic("GLSL recompiler: Unknown common opcode: %X", opcode); break; + case ShaderOpcodes::SLT: + case ShaderOpcodes::SLTI: setDest(operandDescriptor, dest, fmt::format("vec4(lessThan({}, {}))", src1, src2)); break; + + case ShaderOpcodes::SGE: + case ShaderOpcodes::SGEI: setDest(operandDescriptor, dest, fmt::format("vec4(greaterThanEqual({}, {}))", src1, src2)); break; + + case ShaderOpcodes::DPH: + case ShaderOpcodes::DPHI: + if (!config.accurateShaderMul) { + setDest(operandDescriptor, dest, fmt::format("vec4(dot(vec4({}.xyz, 1.0), {}))", src1, src2)); + } else { + // A dot product between a and b is equivalent to the per-lane multiplication of a and b followed by a dot product with vec4(1.0) + setDest(operandDescriptor, dest, fmt::format("vec4(dot(safe_mul(vec4({}.xyz, 1.0), {}), vec4(1.0)))", src1, src2)); + } + break; + + case ShaderOpcodes::CMP1: + case ShaderOpcodes::CMP2: { + static constexpr std::array operators = { + // The last 2 operators always return true and are handled specially + "==", "!=", "<", "<=", ">", ">=", "", "", + }; + + const u32 cmpY = getBits<21, 3>(instruction); + const u32 cmpX = getBits<24, 3>(instruction); + + // Compare x first + if (cmpX >= 6) { + decompiledShader += "cmp_reg.x = true;\n"; + } else { + decompiledShader += fmt::format("cmp_reg.x = {}.x {} {}.x;\n", src1, operators[cmpX], src2); + } + + // Then compare Y + if (cmpY >= 6) { + decompiledShader += "cmp_reg.y = true;\n"; + } else { + decompiledShader += fmt::format("cmp_reg.y = {}.y {} {}.y;\n", src1, operators[cmpY], src2); + } + break; + } + + case ShaderOpcodes::MOVA: { + const bool writeX = getBit<3>(operandDescriptor); // Should we write the x component of the address register? + const bool writeY = getBit<2>(operandDescriptor); + + if (writeX && writeY) { + decompiledShader += fmt::format("addr_reg.xy = ivec2({}.xy);\n", src1); + } else if (writeX) { + decompiledShader += fmt::format("addr_reg.x = int({}.x);\n", src1); + } else if (writeY) { + decompiledShader += fmt::format("addr_reg.y = int({}.y);\n", src1); + } + break; + } + + default: + Helpers::warn("GLSL recompiler: Unknown common opcode: %02X. Falling back to CPU shaders", opcode); + compilationError = true; + break; } } else if (opcode >= 0x30 && opcode <= 0x3F) { // MAD and MADI const u32 operandDescriptor = shader.operandDescriptors[instruction & 0x1f]; @@ -299,23 +603,156 @@ void ShaderDecompiler::compileInstruction(u32& pc, bool& finished) { src3 += getSwizzlePattern(swizzle3); std::string dest = getDest(destIndex); - - if (idx != 0) { - Helpers::panic("GLSL recompiler: Indexed instruction"); + if (!config.accurateShaderMul) { + setDest(operandDescriptor, dest, fmt::format("{} * {} + {}", src1, src2, src3)); + } else { + setDest(operandDescriptor, dest, fmt::format("safe_mul({}, {}) + {}", src1, src2, src3)); } - - setDest(operandDescriptor, dest, src1 + " * " + src2 + " + " + src3); } else { switch (opcode) { - case ShaderOpcodes::END: finished = true; return; - default: Helpers::panic("GLSL recompiler: Unknown opcode: %X", opcode); break; + case ShaderOpcodes::JMPC: { + const u32 dest = getBits<10, 12>(instruction); + const u32 condOp = getBits<22, 2>(instruction); + const uint refY = getBit<24>(instruction); + const uint refX = getBit<25>(instruction); + const char* condition = getCondition(condOp, refX, refY); + + decompiledShader += fmt::format("if ({}) {{ pc = {}u; break; }}\n", condition, dest); + break; + } + + case ShaderOpcodes::JMPU: { + const u32 dest = getBits<10, 12>(instruction); + const u32 bit = getBits<22, 4>(instruction); // Bit of the bool uniform to check + const u32 mask = 1u << bit; + const u32 test = (instruction & 1) ^ 1; // If the LSB is 0 we jump if bit = 1, otherwise 0 + + decompiledShader += fmt::format("if ((uniform_bool & {}u) {} 0u) {{ pc = {}u; break; }}\n", mask, (test != 0) ? "!=" : "==", dest); + break; + } + + case ShaderOpcodes::IFU: + case ShaderOpcodes::IFC: { + const u32 num = instruction & 0xff; + const u32 dest = getBits<10, 12>(instruction); + const Function* conditionalFunc = findFunction(AddressRange(pc + 1, dest)); + + if (opcode == ShaderOpcodes::IFC) { + const u32 condOp = getBits<22, 2>(instruction); + const uint refY = getBit<24>(instruction); + const uint refX = getBit<25>(instruction); + const char* condition = getCondition(condOp, refX, refY); + + decompiledShader += fmt::format("if ({}) {{", condition); + } else { + const u32 bit = getBits<22, 4>(instruction); // Bit of the bool uniform to check + const u32 mask = 1u << bit; + + decompiledShader += fmt::format("if ((uniform_bool & {}u) != 0u) {{", mask); + } + + callFunction(*conditionalFunc); + decompiledShader += "}\n"; + + pc = dest; + if (num > 0) { + const Function* elseFunc = findFunction(AddressRange(dest, dest + num)); + pc = dest + num; + + decompiledShader += "else { "; + callFunction(*elseFunc); + decompiledShader += "}\n"; + + if (conditionalFunc->exitMode == ExitMode::AlwaysEnd && elseFunc->exitMode == ExitMode::AlwaysEnd) { + finished = true; + return; + } + } + + return; + } + + case ShaderOpcodes::CALL: + case ShaderOpcodes::CALLC: + case ShaderOpcodes::CALLU: { + const u32 num = instruction & 0xff; + const u32 dest = getBits<10, 12>(instruction); + const Function* calledFunc = findFunction(AddressRange(dest, dest + num)); + + // Handle conditions for CALLC/CALLU + if (opcode == ShaderOpcodes::CALLC) { + const u32 condOp = getBits<22, 2>(instruction); + const uint refY = getBit<24>(instruction); + const uint refX = getBit<25>(instruction); + const char* condition = getCondition(condOp, refX, refY); + + decompiledShader += fmt::format("if ({}) {{", condition); + } else if (opcode == ShaderOpcodes::CALLU) { + const u32 bit = getBits<22, 4>(instruction); // Bit of the bool uniform to check + const u32 mask = 1u << bit; + + decompiledShader += fmt::format("if ((uniform_bool & {}u) != 0u) {{", mask); + } + + callFunction(*calledFunc); + + // Close brackets for CALLC/CALLU + if (opcode != ShaderOpcodes::CALL) { + decompiledShader += "}"; + } + + if (opcode == ShaderOpcodes::CALL && calledFunc->exitMode == ExitMode::AlwaysEnd) { + finished = true; + return; + } + break; + } + + case ShaderOpcodes::LOOP: { + const u32 dest = getBits<10, 12>(instruction); + const u32 uniformIndex = getBits<22, 2>(instruction); + + // loop counter = uniform.y + decompiledShader += fmt::format("addr_reg.z = int((uniform_i[{}] >> 8u) & 0xFFu);\n", uniformIndex); + decompiledShader += fmt::format( + "for (uint loopCtr{} = 0u; loopCtr{} <= (uniform_i[{}] & 0xFFu); loopCtr{}++, addr_reg.z += int((uniform_i[{}] >> " + "16u) & 0xFFu)) {{\n", + pc, pc, uniformIndex, pc, uniformIndex + ); + + AddressRange range(pc + 1, dest + 1); + const Function* func = findFunction(range); + callFunction(*func); + decompiledShader += "}\n"; + + // Jump to the end of the loop. We don't want to compile the code inside the loop again. + // This will be incremented by 1 due to the pc++ at the end of this loop. + pc = dest; + + if (func->exitMode == ExitMode::AlwaysEnd) { + finished = true; + return; + } + break; + } + + case ShaderOpcodes::END: + decompiledShader += "return true;\n"; + finished = true; + return; + + case ShaderOpcodes::NOP: break; + + default: + Helpers::warn("GLSL recompiler: Unknown opcode: %02X. Falling back to CPU shaders", opcode); + compilationError = true; + break; } } pc++; } - bool ShaderDecompiler::usesCommonEncoding(u32 instruction) const { const u32 opcode = instruction >> 26; switch (opcode) { @@ -339,16 +776,57 @@ bool ShaderDecompiler::usesCommonEncoding(u32 instruction) const { case ShaderOpcodes::SLT: case ShaderOpcodes::SLTI: case ShaderOpcodes::SGE: - case ShaderOpcodes::SGEI: return true; + case ShaderOpcodes::SGEI: + case ShaderOpcodes::LITP: return true; default: return false; } } -void ShaderDecompiler::callFunction(const Function& function) { decompiledShader += function.getCallStatement() + ";\n"; } +void ShaderDecompiler::callFunction(const Function& function) { + switch (function.exitMode) { + // This function always ends, so call it and return true to signal that we're gonna be ending the shader + case ExitMode::AlwaysEnd: decompiledShader += function.getCallStatement() + ";\nreturn true;\n"; break; + // This function will potentially end. Call it, see if it returns that it ended, and return that we're ending if it did + case ExitMode::Conditional: decompiledShader += fmt::format("if ({}) {{ return true; }}\n", function.getCallStatement()); break; + // This function will not end. Just call it like a normal function. + default: decompiledShader += function.getCallStatement() + ";\n"; break; + } +} std::string ShaderGen::decompileShader(PICAShader& shader, EmulatorConfig& config, u32 entrypoint, API api, Language language) { ShaderDecompiler decompiler(shader, config, entrypoint, api, language); return decompiler.decompile(); } + +const char* ShaderDecompiler::getCondition(u32 cond, u32 refX, u32 refY) { + static constexpr std::array conditions = { + // ref(Y, X) = (0, 0) + "!all(cmp_reg)", + "all(not(cmp_reg))", + "!cmp_reg.x", + "!cmp_reg.y", + + // ref(Y, X) = (0, 1) + "cmp_reg.x || !cmp_reg.y", + "cmp_reg.x && !cmp_reg.y", + "cmp_reg.x", + "!cmp_reg.y", + + // ref(Y, X) = (1, 0) + "!cmp_reg.x || cmp_reg.y", + "!cmp_reg.x && cmp_reg.y", + "!cmp_reg.x", + "cmp_reg.y", + + // ref(Y, X) = (1, 1) + "any(cmp_reg)", + "all(cmp_reg)", + "cmp_reg.x", + "cmp_reg.y", + }; + const u32 key = (cond & 0b11) | (refX << 2) | (refY << 3); + + return conditions[key]; +} diff --git a/src/core/PICA/shader_gen_glsl.cpp b/src/core/PICA/shader_gen_glsl.cpp index 13d5aa58..44a75134 100644 --- a/src/core/PICA/shader_gen_glsl.cpp +++ b/src/core/PICA/shader_gen_glsl.cpp @@ -1,3 +1,7 @@ +#include + +#include + #include "PICA/pica_frag_config.hpp" #include "PICA/regs.hpp" #include "PICA/shader_gen.hpp" @@ -702,6 +706,113 @@ void FragmentGenerator::compileFog(std::string& shader, const PICA::FragmentConf shader += "combinerOutput.rgb = mix(fog_color, combinerOutput.rgb, fog_factor);"; } +std::string FragmentGenerator::getVertexShaderAccelerated(const std::string& picaSource, const PICA::VertConfig& vertConfig, bool usingUbershader) { + // First, calculate output register -> Fixed function fragment semantics based on the VAO config + // This array contains the mappings for the 32 fixed function semantics (8 variables, with 4 lanes each). + // Each entry is a pair, containing the output reg to use for this semantic (first) and which lane of that register (second) + std::array, 32> outputMappings{}; + // Output registers adjusted according to VS_OUTPUT_MASK, which handles enabling and disabling output attributes + std::array vsOutputRegisters; + + { + uint count = 0; + u16 outputMask = vertConfig.outputMask; + + // See which registers are actually enabled and ignore the disabled ones + for (int i = 0; i < 16; i++) { + if (outputMask & 1) { + vsOutputRegisters[count++] = i; + } + + outputMask >>= 1; + } + + // For the others, map the index to a vs output directly (TODO: What does hw actually do?) + for (; count < 16; count++) { + vsOutputRegisters[count] = count; + } + + for (int i = 0; i < vertConfig.outputCount; i++) { + const u32 config = vertConfig.outmaps[i]; + for (int j = 0; j < 4; j++) { + const u32 mapping = (config >> (j * 8)) & 0x1F; + outputMappings[mapping] = std::make_pair(vsOutputRegisters[i], j); + } + } + } + + auto getSemanticName = [&](u32 semanticIndex) { + auto [reg, lane] = outputMappings[semanticIndex]; + return fmt::format("out_regs[{}][{}]", reg, lane); + }; + + std::string semantics = fmt::format( + R"( + vec4 a_coords = vec4({}, {}, {}, {}); + vec4 a_quaternion = vec4({}, {}, {}, {}); + vec4 a_vertexColour = vec4({}, {}, {}, {}); + vec2 a_texcoord0 = vec2({}, {}); + float a_texcoord0_w = {}; + vec2 a_texcoord1 = vec2({}, {}); + vec2 a_texcoord2 = vec2({}, {}); + vec3 a_view = vec3({}, {}, {}); +)", + getSemanticName(0), getSemanticName(1), getSemanticName(2), getSemanticName(3), getSemanticName(4), getSemanticName(5), getSemanticName(6), + getSemanticName(7), getSemanticName(8), getSemanticName(9), getSemanticName(10), getSemanticName(11), getSemanticName(12), + getSemanticName(13), getSemanticName(16), getSemanticName(14), getSemanticName(15), getSemanticName(22), getSemanticName(23), + getSemanticName(18), getSemanticName(19), getSemanticName(20) + ); + + if (usingUbershader) { + Helpers::panic("Unimplemented: GetVertexShaderAccelerated for ubershader"); + return picaSource; + } else { + // TODO: Uniforms and don't hardcode fixed-function semantic indices... + std::string ret = picaSource; + if (api == API::GLES) { + ret += "\n#define USING_GLES\n"; + } + + ret += uniformDefinition; + + ret += R"( +out vec4 v_quaternion; +out vec4 v_colour; +out vec3 v_texcoord0; +out vec2 v_texcoord1; +out vec3 v_view; +out vec2 v_texcoord2; + +#ifndef USING_GLES + out float gl_ClipDistance[2]; +#endif + +void main() { + pica_shader_main(); +)"; + // Transfer fixed function fragment registers from vertex shader output to the fragment shader + ret += semantics; + + ret += R"( + gl_Position = a_coords; + vec4 colourAbs = abs(a_vertexColour); + v_colour = min(colourAbs, vec4(1.f)); + + v_texcoord0 = vec3(a_texcoord0.x, 1.0 - a_texcoord0.y, a_texcoord0_w); + v_texcoord1 = vec2(a_texcoord1.x, 1.0 - a_texcoord1.y); + v_texcoord2 = vec2(a_texcoord2.x, 1.0 - a_texcoord2.y); + v_view = a_view; + v_quaternion = a_quaternion; + +#ifndef USING_GLES + gl_ClipDistance[0] = -a_coords.z; + gl_ClipDistance[1] = dot(clipCoords, a_coords); +#endif +})"; + return ret; + } +} + void FragmentGenerator::compileLogicOps(std::string& shader, const PICA::FragmentConfig& config) { if (api != API::GLES) [[unlikely]] { Helpers::warn("Shadergen: Unsupported API for compileLogicOps"); diff --git a/src/core/PICA/shader_unit.cpp b/src/core/PICA/shader_unit.cpp index 759849a8..6b291d31 100644 --- a/src/core/PICA/shader_unit.cpp +++ b/src/core/PICA/shader_unit.cpp @@ -34,4 +34,5 @@ void PICAShader::reset() { codeHashDirty = true; opdescHashDirty = true; + uniformsDirty = true; } \ No newline at end of file diff --git a/src/core/renderer_gl/gl_state.cpp b/src/core/renderer_gl/gl_state.cpp index 3d1c0681..785cac41 100644 --- a/src/core/renderer_gl/gl_state.cpp +++ b/src/core/renderer_gl/gl_state.cpp @@ -73,10 +73,7 @@ void GLStateManager::resetVAO() { } void GLStateManager::resetBuffers() { - boundVBO = 0; boundUBO = 0; - - glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_UNIFORM_BUFFER, 0); } diff --git a/src/core/renderer_gl/renderer_gl.cpp b/src/core/renderer_gl/renderer_gl.cpp index ecbee3a2..30f9be91 100644 --- a/src/core/renderer_gl/renderer_gl.cpp +++ b/src/core/renderer_gl/renderer_gl.cpp @@ -2,13 +2,15 @@ #include +#include #include -#include "config.hpp" #include "PICA/float_types.hpp" -#include "PICA/pica_frag_uniforms.hpp" #include "PICA/gpu.hpp" +#include "PICA/pica_frag_uniforms.hpp" #include "PICA/regs.hpp" +#include "PICA/shader_decompiler.hpp" +#include "config.hpp" #include "math_util.hpp" CMRC_DECLARE(RendererGL); @@ -24,7 +26,7 @@ void RendererGL::reset() { colourBufferCache.reset(); textureCache.reset(); - clearShaderCache(); + shaderCache.clear(); // Init the colour/depth buffer settings to some random defaults on reset colourBufferLoc = 0; @@ -77,40 +79,56 @@ void RendererGL::initGraphicsContextInternal() { gl.useProgram(displayProgram); glUniform1i(OpenGL::uniformLocation(displayProgram, "u_texture"), 0); // Init sampler object + // Create stream buffers for vertex, index and uniform buffers + static constexpr usize hwIndexBufferSize = 2_MB; + static constexpr usize hwVertexBufferSize = 16_MB; + + hwIndexBuffer = StreamBuffer::Create(GL_ELEMENT_ARRAY_BUFFER, hwIndexBufferSize); + hwVertexBuffer = StreamBuffer::Create(GL_ARRAY_BUFFER, hwVertexBufferSize); + // Allocate memory for the shadergen fragment uniform UBO glGenBuffers(1, &shadergenFragmentUBO); gl.bindUBO(shadergenFragmentUBO); glBufferData(GL_UNIFORM_BUFFER, sizeof(PICA::FragmentUniforms), nullptr, GL_DYNAMIC_DRAW); - vbo.createFixedSize(sizeof(Vertex) * vertexBufferSize, GL_STREAM_DRAW); - gl.bindVBO(vbo); - vao.create(); - gl.bindVAO(vao); + // Allocate memory for the accelerated vertex shader uniform UBO + glGenBuffers(1, &hwShaderUniformUBO); + gl.bindUBO(hwShaderUniformUBO); + glBufferData(GL_UNIFORM_BUFFER, PICAShader::totalUniformSize(), nullptr, GL_DYNAMIC_DRAW); + + vbo.createFixedSize(sizeof(Vertex) * vertexBufferSize * 2, GL_STREAM_DRAW); + vbo.bind(); + // Initialize the VAO used when not using hw shaders + defaultVAO.create(); + gl.bindVAO(defaultVAO); // Position (x, y, z, w) attributes - vao.setAttributeFloat(0, 4, sizeof(Vertex), offsetof(Vertex, s.positions)); - vao.enableAttribute(0); + defaultVAO.setAttributeFloat(0, 4, sizeof(Vertex), offsetof(Vertex, s.positions)); + defaultVAO.enableAttribute(0); // Quaternion attribute - vao.setAttributeFloat(1, 4, sizeof(Vertex), offsetof(Vertex, s.quaternion)); - vao.enableAttribute(1); + defaultVAO.setAttributeFloat(1, 4, sizeof(Vertex), offsetof(Vertex, s.quaternion)); + defaultVAO.enableAttribute(1); // Colour attribute - vao.setAttributeFloat(2, 4, sizeof(Vertex), offsetof(Vertex, s.colour)); - vao.enableAttribute(2); + defaultVAO.setAttributeFloat(2, 4, sizeof(Vertex), offsetof(Vertex, s.colour)); + defaultVAO.enableAttribute(2); // UV 0 attribute - vao.setAttributeFloat(3, 2, sizeof(Vertex), offsetof(Vertex, s.texcoord0)); - vao.enableAttribute(3); + defaultVAO.setAttributeFloat(3, 2, sizeof(Vertex), offsetof(Vertex, s.texcoord0)); + defaultVAO.enableAttribute(3); // UV 1 attribute - vao.setAttributeFloat(4, 2, sizeof(Vertex), offsetof(Vertex, s.texcoord1)); - vao.enableAttribute(4); + defaultVAO.setAttributeFloat(4, 2, sizeof(Vertex), offsetof(Vertex, s.texcoord1)); + defaultVAO.enableAttribute(4); // UV 0 W-component attribute - vao.setAttributeFloat(5, 1, sizeof(Vertex), offsetof(Vertex, s.texcoord0_w)); - vao.enableAttribute(5); + defaultVAO.setAttributeFloat(5, 1, sizeof(Vertex), offsetof(Vertex, s.texcoord0_w)); + defaultVAO.enableAttribute(5); // View - vao.setAttributeFloat(6, 3, sizeof(Vertex), offsetof(Vertex, s.view)); - vao.enableAttribute(6); + defaultVAO.setAttributeFloat(6, 3, sizeof(Vertex), offsetof(Vertex, s.view)); + defaultVAO.enableAttribute(6); // UV 2 attribute - vao.setAttributeFloat(7, 2, sizeof(Vertex), offsetof(Vertex, s.texcoord2)); - vao.enableAttribute(7); + defaultVAO.setAttributeFloat(7, 2, sizeof(Vertex), offsetof(Vertex, s.texcoord2)); + defaultVAO.enableAttribute(7); + + // Initialize the VAO used for hw shaders + hwShaderVAO.create(); dummyVBO.create(); dummyVAO.create(); @@ -165,6 +183,12 @@ void RendererGL::initGraphicsContextInternal() { OpenGL::clearColor(); OpenGL::setViewport(oldViewport[0], oldViewport[1], oldViewport[2], oldViewport[3]); + // Initialize fixed attributes + for (int i = 0; i < fixedAttrValues.size(); i++) { + fixedAttrValues[i] = {0.f, 0.f, 0.f, 0.f}; + glVertexAttrib4f(i, 0.0, 0.0, 0.0, 0.0); + } + reset(); // Populate our driver info structure @@ -418,29 +442,14 @@ void RendererGL::drawVertices(PICA::PrimType primType, std::span v OpenGL::Triangle, }; - bool usingUbershader = enableUbershader; - if (usingUbershader) { - const bool lightsEnabled = (regs[InternalRegs::LightingEnable] & 1) != 0; - const uint lightCount = (regs[InternalRegs::LightNumber] & 0x7) + 1; - - // Emulating lights in the ubershader is incredibly slow, so we've got an option to render draws using moret han N lights via shadergen - // This way we generate fewer shaders overall than with full shadergen, but don't tank performance - if (emulatorConfig->forceShadergenForLights && lightsEnabled && lightCount >= emulatorConfig->lightShadergenThreshold) { - usingUbershader = false; - } - } - - if (usingUbershader) { - gl.useProgram(triangleProgram); - } else { - OpenGL::Program& program = getSpecializedShader(); - gl.useProgram(program); - } - const auto primitiveTopology = primTypes[static_cast(primType)]; gl.disableScissor(); - gl.bindVBO(vbo); - gl.bindVAO(vao); + + // If we're using accelerated shaders, the hw VAO, VBO and EBO objects will have already been bound in prepareForDraw + if (!usingAcceleratedShader) { + vbo.bind(); + gl.bindVAO(defaultVAO); + } gl.enableClipPlane(0); // Clipping plane 0 is always enabled if (regs[PICA::InternalRegs::ClipEnable] & 1) { @@ -458,38 +467,9 @@ void RendererGL::drawVertices(PICA::PrimType primType, std::span v const int depthFunc = getBits<4, 3>(depthControl); const int colourMask = getBits<8, 4>(depthControl); gl.setColourMask(colourMask & 1, colourMask & 2, colourMask & 4, colourMask & 8); - static constexpr std::array depthModes = {GL_NEVER, GL_ALWAYS, GL_EQUAL, GL_NOTEQUAL, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL}; - // Update ubershader uniforms - if (usingUbershader) { - const float depthScale = f24::fromRaw(regs[PICA::InternalRegs::DepthScale] & 0xffffff).toFloat32(); - const float depthOffset = f24::fromRaw(regs[PICA::InternalRegs::DepthOffset] & 0xffffff).toFloat32(); - const bool depthMapEnable = regs[PICA::InternalRegs::DepthmapEnable] & 1; - - if (oldDepthScale != depthScale) { - oldDepthScale = depthScale; - glUniform1f(ubershaderData.depthScaleLoc, depthScale); - } - - if (oldDepthOffset != depthOffset) { - oldDepthOffset = depthOffset; - glUniform1f(ubershaderData.depthOffsetLoc, depthOffset); - } - - if (oldDepthmapEnable != depthMapEnable) { - oldDepthmapEnable = depthMapEnable; - glUniform1i(ubershaderData.depthmapEnableLoc, depthMapEnable); - } - - // Upload PICA Registers as a single uniform. The shader needs access to the rasterizer registers (for depth, starting from index 0x48) - // The texturing and the fragment lighting registers. Therefore we upload them all in one go to avoid multiple slow uniform updates - glUniform1uiv(ubershaderData.picaRegLoc, 0x200 - 0x48, ®s[0x48]); - setupUbershaderTexEnv(); - } - bindTexturesToSlots(); - if (gpu.fogLUTDirty) { updateFogLUT(); } @@ -532,8 +512,22 @@ void RendererGL::drawVertices(PICA::PrimType primType, std::span v setupStencilTest(stencilEnable); - vbo.bufferVertsSub(vertices); - OpenGL::draw(primitiveTopology, GLsizei(vertices.size())); + if (!usingAcceleratedShader) { + vbo.bufferVertsSub(vertices); + OpenGL::draw(primitiveTopology, GLsizei(vertices.size())); + } else { + if (performIndexedRender) { + // When doing indexed rendering, use glDrawRangeElementsBaseVertex to issue the indexed draw + hwIndexBuffer->Bind(); + glDrawRangeElementsBaseVertex( + primitiveTopology, minimumIndex, maximumIndex, GLsizei(vertices.size()), usingShortIndices ? GL_UNSIGNED_SHORT : GL_UNSIGNED_BYTE, + hwIndexBufferOffset, -GLint(minimumIndex) + ); + } else { + // When doing non-indexed rendering, just use glDrawArrays + OpenGL::draw(primitiveTopology, GLsizei(vertices.size())); + } + } } void RendererGL::display() { @@ -840,7 +834,8 @@ std::optional RendererGL::getColourBuffer(u32 addr, PICA::ColorFmt } OpenGL::Program& RendererGL::getSpecializedShader() { - constexpr uint uboBlockBinding = 2; + constexpr uint vsUBOBlockBinding = 1; + constexpr uint fsUBOBlockBinding = 2; PICA::FragmentConfig fsConfig(regs); // If we're not on GLES, ignore the logic op configuration and don't generate redundant shaders for it, since we use hw logic ops @@ -848,30 +843,44 @@ OpenGL::Program& RendererGL::getSpecializedShader() { fsConfig.outConfig.logicOpMode = PICA::LogicOpMode(0); #endif - CachedProgram& programEntry = shaderCache[fsConfig]; + OpenGL::Shader& fragShader = shaderCache.fragmentShaderCache[fsConfig]; + if (!fragShader.exists()) { + std::string fs = fragShaderGen.generate(fsConfig); + fragShader.create({fs.c_str(), fs.size()}, OpenGL::Fragment); + } + + // Get the handle of the current vertex shader + OpenGL::Shader& vertexShader = usingAcceleratedShader ? *generatedVertexShader : defaultShadergenVs; + // And form the key for looking up a shader program + const u64 programKey = (u64(vertexShader.handle()) << 32) | u64(fragShader.handle()); + + CachedProgram& programEntry = shaderCache.programCache[programKey]; OpenGL::Program& program = programEntry.program; if (!program.exists()) { - std::string fs = fragShaderGen.generate(fsConfig, &driverInfo); - - OpenGL::Shader fragShader({fs.c_str(), fs.size()}, OpenGL::Fragment); - program.create({defaultShadergenVs, fragShader}); + program.create({vertexShader, fragShader}); gl.useProgram(program); - fragShader.free(); - // Init sampler objects. Texture 0 goes in texture unit 0, texture 1 in TU 1, texture 2 in TU 2, and the light maps go in TU 3 glUniform1i(OpenGL::uniformLocation(program, "u_tex0"), 0); glUniform1i(OpenGL::uniformLocation(program, "u_tex1"), 1); glUniform1i(OpenGL::uniformLocation(program, "u_tex2"), 2); glUniform1i(OpenGL::uniformLocation(program, "u_tex_luts"), 3); - // Set up the binding for our UBO. Sadly we can't specify it in the shader like normal people, + // Set up the binding for our UBOs. Sadly we can't specify it in the shader like normal people, // As it's an OpenGL 4.2 feature that MacOS doesn't support... - uint uboIndex = glGetUniformBlockIndex(program.handle(), "FragmentUniforms"); - glUniformBlockBinding(program.handle(), uboIndex, uboBlockBinding); + uint fsUBOIndex = glGetUniformBlockIndex(program.handle(), "FragmentUniforms"); + glUniformBlockBinding(program.handle(), fsUBOIndex, fsUBOBlockBinding); + + if (usingAcceleratedShader) { + uint vertexUBOIndex = glGetUniformBlockIndex(program.handle(), "PICAShaderUniforms"); + glUniformBlockBinding(program.handle(), vertexUBOIndex, vsUBOBlockBinding); + } + } + glBindBufferBase(GL_UNIFORM_BUFFER, fsUBOBlockBinding, shadergenFragmentUBO); + if (usingAcceleratedShader) { + glBindBufferBase(GL_UNIFORM_BUFFER, vsUBOBlockBinding, hwShaderUniformUBO); } - glBindBufferBase(GL_UNIFORM_BUFFER, uboBlockBinding, shadergenFragmentUBO); // Upload uniform data to our shader's UBO PICA::FragmentUniforms uniforms; @@ -961,6 +970,101 @@ OpenGL::Program& RendererGL::getSpecializedShader() { return program; } +bool RendererGL::prepareForDraw(ShaderUnit& shaderUnit, PICA::DrawAcceleration* accel) { + // First we figure out if we will be using an ubershader + bool usingUbershader = emulatorConfig->useUbershaders; + if (usingUbershader) { + const bool lightsEnabled = (regs[InternalRegs::LightingEnable] & 1) != 0; + const uint lightCount = (regs[InternalRegs::LightNumber] & 0x7) + 1; + + // Emulating lights in the ubershader is incredibly slow, so we've got an option to render draws using moret han N lights via shadergen + // This way we generate fewer shaders overall than with full shadergen, but don't tank performance + if (emulatorConfig->forceShadergenForLights && lightsEnabled && lightCount >= emulatorConfig->lightShadergenThreshold) { + usingUbershader = false; + } + } + + // Then we figure out if we will use hw accelerated shaders, and try to fetch our shader + // TODO: Ubershader support for accelerated shaders + usingAcceleratedShader = emulatorConfig->accelerateShaders && !usingUbershader && accel != nullptr && accel->canBeAccelerated; + + if (usingAcceleratedShader) { + PICA::VertConfig vertexConfig(shaderUnit.vs, regs, usingUbershader); + + std::optional& shader = shaderCache.vertexShaderCache[vertexConfig]; + // If the optional is false, we have never tried to recompile the shader before. Try to recompile it and see if it works. + if (!shader.has_value()) { + // Initialize shader to a "null" shader (handle == 0) + shader = OpenGL::Shader(); + + std::string picaShaderSource = PICA::ShaderGen::decompileShader( + shaderUnit.vs, *emulatorConfig, shaderUnit.vs.entrypoint, + Helpers::isAndroid() ? PICA::ShaderGen::API::GLES : PICA::ShaderGen::API::GL, PICA::ShaderGen::Language::GLSL + ); + + // Empty source means compilation error, if the source is not empty then we convert the recompiled PICA code into a valid shader and upload + // it to the GPU + if (!picaShaderSource.empty()) { + std::string vertexShaderSource = fragShaderGen.getVertexShaderAccelerated(picaShaderSource, vertexConfig, usingUbershader); + shader->create({vertexShaderSource}, OpenGL::Vertex); + } + } + + // Shader generation did not work out, so set usingAcceleratedShader to false + if (!shader->exists()) { + usingAcceleratedShader = false; + } else { + generatedVertexShader = &(*shader); + gl.bindUBO(hwShaderUniformUBO); + + if (shaderUnit.vs.uniformsDirty) { + shaderUnit.vs.uniformsDirty = false; + glBufferSubData(GL_UNIFORM_BUFFER, 0, PICAShader::totalUniformSize(), shaderUnit.vs.getUniformPointer()); + } + + performIndexedRender = accel->indexed; + minimumIndex = GLsizei(accel->minimumIndex); + maximumIndex = GLsizei(accel->maximumIndex); + + // Upload vertex data and index buffer data to our GPU + accelerateVertexUpload(shaderUnit, accel); + } + } + + if (!usingUbershader) { + OpenGL::Program& program = getSpecializedShader(); + gl.useProgram(program); + } else { // Bind ubershader & load ubershader uniforms + gl.useProgram(triangleProgram); + + const float depthScale = f24::fromRaw(regs[PICA::InternalRegs::DepthScale] & 0xffffff).toFloat32(); + const float depthOffset = f24::fromRaw(regs[PICA::InternalRegs::DepthOffset] & 0xffffff).toFloat32(); + const bool depthMapEnable = regs[PICA::InternalRegs::DepthmapEnable] & 1; + + if (oldDepthScale != depthScale) { + oldDepthScale = depthScale; + glUniform1f(ubershaderData.depthScaleLoc, depthScale); + } + + if (oldDepthOffset != depthOffset) { + oldDepthOffset = depthOffset; + glUniform1f(ubershaderData.depthOffsetLoc, depthOffset); + } + + if (oldDepthmapEnable != depthMapEnable) { + oldDepthmapEnable = depthMapEnable; + glUniform1i(ubershaderData.depthmapEnableLoc, depthMapEnable); + } + + // Upload PICA Registers as a single uniform. The shader needs access to the rasterizer registers (for depth, starting from index 0x48) + // The texturing and the fragment lighting registers. Therefore we upload them all in one go to avoid multiple slow uniform updates + glUniform1uiv(ubershaderData.picaRegLoc, 0x200 - 0x48, ®s[0x48]); + setupUbershaderTexEnv(); + } + + return usingAcceleratedShader; +} + void RendererGL::screenshot(const std::string& name) { constexpr uint width = 400; constexpr uint height = 2 * 240; @@ -974,7 +1078,7 @@ void RendererGL::screenshot(const std::string& name) { // Flip the image vertically for (int y = 0; y < height; y++) { - memcpy(&flippedPixels[y * width * 4], &pixels[(height - y - 1) * width * 4], width * 4); + std::memcpy(&flippedPixels[y * width * 4], &pixels[(height - y - 1) * width * 4], width * 4); // Swap R and B channels for (int x = 0; x < width; x++) { std::swap(flippedPixels[y * width * 4 + x * 4 + 0], flippedPixels[y * width * 4 + x * 4 + 2]); @@ -986,21 +1090,12 @@ void RendererGL::screenshot(const std::string& name) { stbi_write_png(name.c_str(), width, height, 4, flippedPixels.data(), 0); } -void RendererGL::clearShaderCache() { - for (auto& shader : shaderCache) { - CachedProgram& cachedProgram = shader.second; - cachedProgram.program.free(); - } - - shaderCache.clear(); -} - void RendererGL::deinitGraphicsContext() { // Invalidate all surface caches since they'll no longer be valid textureCache.reset(); depthBufferCache.reset(); colourBufferCache.reset(); - clearShaderCache(); + shaderCache.clear(); // All other GL objects should be invalidated automatically and be recreated by the next call to initGraphicsContext // TODO: Make it so that depth and colour buffers get written back to 3DS memory @@ -1049,3 +1144,92 @@ void RendererGL::initUbershader(OpenGL::Program& program) { glUniform1i(OpenGL::uniformLocation(program, "u_tex2"), 2); glUniform1i(OpenGL::uniformLocation(program, "u_tex_luts"), 3); } + +void RendererGL::accelerateVertexUpload(ShaderUnit& shaderUnit, PICA::DrawAcceleration* accel) { + u32 buffer = 0; // Vertex buffer index for non-fixed attributes + u32 attrCount = 0; + + const u32 totalAttribCount = accel->totalAttribCount; + + static constexpr GLenum attributeFormats[4] = { + GL_BYTE, // 0: Signed byte + GL_UNSIGNED_BYTE, // 1: Unsigned byte + GL_SHORT, // 2: Short + GL_FLOAT, // 3: Float + }; + + const u32 vertexCount = accel->maximumIndex - accel->minimumIndex + 1; + + // Update index buffer if necessary + if (accel->indexed) { + usingShortIndices = accel->useShortIndices; + const usize indexBufferSize = regs[PICA::InternalRegs::VertexCountReg] * (usingShortIndices ? sizeof(u16) : sizeof(u8)); + + hwIndexBuffer->Bind(); + auto indexBufferRes = hwIndexBuffer->Map(4, indexBufferSize); + hwIndexBufferOffset = reinterpret_cast(usize(indexBufferRes.buffer_offset)); + + std::memcpy(indexBufferRes.pointer, accel->indexBuffer, indexBufferSize); + hwIndexBuffer->Unmap(indexBufferSize); + } + + hwVertexBuffer->Bind(); + auto vertexBufferRes = hwVertexBuffer->Map(4, accel->vertexDataSize); + u8* vertexData = static_cast(vertexBufferRes.pointer); + const u32 vertexBufferOffset = vertexBufferRes.buffer_offset; + + gl.bindVAO(hwShaderVAO); + + // Enable or disable vertex attributes as needed + const u32 currentAttributeMask = accel->enabledAttributeMask; + // Use bitwise xor to calculate which attributes changed + u32 attributeMaskDiff = currentAttributeMask ^ previousAttributeMask; + + while (attributeMaskDiff != 0) { + // Get index of next different attribute and turn it off + const u32 index = 31 - std::countl_zero(attributeMaskDiff); + const u32 mask = 1u << index; + attributeMaskDiff ^= mask; + + if ((currentAttributeMask & mask) != 0) { + // Attribute was disabled and is now enabled + hwShaderVAO.enableAttribute(index); + } else { + // Attribute was enabled and is now disabled + hwShaderVAO.disableAttribute(index); + } + } + + previousAttributeMask = currentAttributeMask; + + // Upload the data for each (enabled) attribute loader into our vertex buffer + for (int i = 0; i < accel->totalLoaderCount; i++) { + auto& loader = accel->loaders[i]; + + std::memcpy(vertexData, loader.data, loader.size); + vertexData += loader.size; + } + + hwVertexBuffer->Unmap(accel->vertexDataSize); + + // Iterate over the 16 PICA input registers and configure how they should be fetched. + for (int i = 0; i < 16; i++) { + const auto& attrib = accel->attributeInfo[i]; + const u32 attributeMask = 1u << i; + + if (accel->fixedAttributes & attributeMask) { + auto& attrValue = fixedAttrValues[i]; + // This is a fixed attribute, so set its fixed value, but only if it actually needs to be updated + if (attrValue[0] != attrib.fixedValue[0] || attrValue[1] != attrib.fixedValue[1] || attrValue[2] != attrib.fixedValue[2] || + attrValue[3] != attrib.fixedValue[3]) { + std::memcpy(attrValue.data(), attrib.fixedValue.data(), sizeof(attrib.fixedValue)); + glVertexAttrib4f(i, attrib.fixedValue[0], attrib.fixedValue[1], attrib.fixedValue[2], attrib.fixedValue[3]); + } + } else if (accel->enabledAttributeMask & attributeMask) { + glVertexAttribPointer( + i, attrib.componentCount, attributeFormats[attrib.type], GL_FALSE, attrib.stride, + reinterpret_cast(vertexBufferOffset + attrib.offset) + ); + } + } +} \ No newline at end of file diff --git a/src/libretro_core.cpp b/src/libretro_core.cpp index 3f92cddd..21a62f23 100644 --- a/src/libretro_core.cpp +++ b/src/libretro_core.cpp @@ -163,8 +163,9 @@ static int fetchVariableRange(std::string key, int min, int max) { static void configInit() { static const retro_variable values[] = { - {"panda3ds_use_shader_jit", EmulatorConfig::shaderJitDefault ? "Enable shader JIT; enabled|disabled" - : "Enable shader JIT; disabled|enabled"}, + {"panda3ds_use_shader_jit", EmulatorConfig::shaderJitDefault ? "Enable shader JIT; enabled|disabled" : "Enable shader JIT; disabled|enabled"}, + {"panda3ds_accelerate_shaders", + EmulatorConfig::accelerateShadersDefault ? "Run 3DS shaders on the GPU; enabled|disabled" : "Run 3DS shaders on the GPU; disabled|enabled"}, {"panda3ds_accurate_shader_mul", "Enable accurate shader multiplication; disabled|enabled"}, {"panda3ds_use_ubershader", EmulatorConfig::ubershaderDefault ? "Use ubershaders (No stutter, maybe slower); enabled|disabled" : "Use ubershaders (No stutter, maybe slower); disabled|enabled"}, @@ -197,6 +198,8 @@ static void configUpdate() { config.sdWriteProtected = fetchVariableBool("panda3ds_write_protect_virtual_sd", false); config.accurateShaderMul = fetchVariableBool("panda3ds_accurate_shader_mul", false); config.useUbershaders = fetchVariableBool("panda3ds_use_ubershader", EmulatorConfig::ubershaderDefault); + config.accelerateShaders = fetchVariableBool("panda3ds_accelerate_shaders", EmulatorConfig::accelerateShadersDefault); + config.forceShadergenForLights = fetchVariableBool("panda3ds_ubershader_lighting_override", true); config.lightShadergenThreshold = fetchVariableRange("panda3ds_ubershader_lighting_override_threshold", 1, 8); config.discordRpcEnabled = false; diff --git a/third_party/duckstation/gl/stream_buffer.cpp b/third_party/duckstation/gl/stream_buffer.cpp new file mode 100644 index 00000000..b7a40603 --- /dev/null +++ b/third_party/duckstation/gl/stream_buffer.cpp @@ -0,0 +1,288 @@ +// SPDX-FileCopyrightText: 2019-2023 Connor McLaughlin +// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0) + +#include "gl/stream_buffer.h" + +#include +#include + +#include "align.hpp" + +OpenGLStreamBuffer::OpenGLStreamBuffer(GLenum target, GLuint buffer_id, u32 size) : m_target(target), m_buffer_id(buffer_id), m_size(size) {} +OpenGLStreamBuffer::~OpenGLStreamBuffer() { glDeleteBuffers(1, &m_buffer_id); } + +void OpenGLStreamBuffer::Bind() { glBindBuffer(m_target, m_buffer_id); } +void OpenGLStreamBuffer::Unbind() { glBindBuffer(m_target, 0); } + +void OpenGLStreamBuffer::SetDebugName(std::string_view name) { +#ifdef GPU_DEBUG_INFO + if (glObjectLabel) { + glObjectLabel(GL_BUFFER, GetGLBufferId(), static_cast(name.length()), static_cast(name.data())); + } +#endif +} + +namespace { + // Uses glBufferSubData() to update. Preferred for drivers which don't support {ARB,EXT}_buffer_storage. + class BufferSubDataStreamBuffer final : public OpenGLStreamBuffer { + public: + ~BufferSubDataStreamBuffer() override { Common::alignedFree(m_cpu_buffer); } + + MappingResult Map(u32 alignment, u32 min_size) override { return MappingResult{static_cast(m_cpu_buffer), 0, 0, m_size / alignment}; } + + u32 Unmap(u32 used_size) override { + if (used_size == 0) return 0; + + glBindBuffer(m_target, m_buffer_id); + glBufferSubData(m_target, 0, used_size, m_cpu_buffer); + return 0; + } + + u32 GetChunkSize() const override { return m_size; } + + static std::unique_ptr Create(GLenum target, u32 size) { + glGetError(); + + GLuint buffer_id; + glGenBuffers(1, &buffer_id); + glBindBuffer(target, buffer_id); + glBufferData(target, size, nullptr, GL_STREAM_DRAW); + + GLenum err = glGetError(); + if (err != GL_NO_ERROR) { + glBindBuffer(target, 0); + glDeleteBuffers(1, &buffer_id); + return {}; + } + + return std::unique_ptr(new BufferSubDataStreamBuffer(target, buffer_id, size)); + } + + private: + BufferSubDataStreamBuffer(GLenum target, GLuint buffer_id, u32 size) : OpenGLStreamBuffer(target, buffer_id, size) { + m_cpu_buffer = static_cast(Common::alignedMalloc(size, 32)); + if (!m_cpu_buffer) Panic("Failed to allocate CPU storage for GL buffer"); + } + + u8* m_cpu_buffer; + }; + + // Uses BufferData() to orphan the buffer after every update. Used on Mali where BufferSubData forces a sync. + class BufferDataStreamBuffer final : public OpenGLStreamBuffer { + public: + ~BufferDataStreamBuffer() override { Common::alignedFree(m_cpu_buffer); } + + MappingResult Map(u32 alignment, u32 min_size) override { return MappingResult{static_cast(m_cpu_buffer), 0, 0, m_size / alignment}; } + + u32 Unmap(u32 used_size) override { + if (used_size == 0) return 0; + + glBindBuffer(m_target, m_buffer_id); + glBufferData(m_target, used_size, m_cpu_buffer, GL_STREAM_DRAW); + return 0; + } + + u32 GetChunkSize() const override { return m_size; } + + static std::unique_ptr Create(GLenum target, u32 size) { + glGetError(); + + GLuint buffer_id; + glGenBuffers(1, &buffer_id); + glBindBuffer(target, buffer_id); + glBufferData(target, size, nullptr, GL_STREAM_DRAW); + + GLenum err = glGetError(); + if (err != GL_NO_ERROR) { + glBindBuffer(target, 0); + glDeleteBuffers(1, &buffer_id); + return {}; + } + + return std::unique_ptr(new BufferDataStreamBuffer(target, buffer_id, size)); + } + + private: + BufferDataStreamBuffer(GLenum target, GLuint buffer_id, u32 size) : OpenGLStreamBuffer(target, buffer_id, size) { + m_cpu_buffer = static_cast(Common::alignedMalloc(size, 32)); + if (!m_cpu_buffer) Panic("Failed to allocate CPU storage for GL buffer"); + } + + u8* m_cpu_buffer; + }; + + // Base class for implementations which require syncing. + class SyncingStreamBuffer : public OpenGLStreamBuffer { + public: + enum : u32 { NUM_SYNC_POINTS = 16 }; + + virtual ~SyncingStreamBuffer() override { + for (u32 i = m_available_block_index; i <= m_used_block_index; i++) { + glDeleteSync(m_sync_objects[i]); + } + } + + protected: + SyncingStreamBuffer(GLenum target, GLuint buffer_id, u32 size) + : OpenGLStreamBuffer(target, buffer_id, size), m_bytes_per_block((size + (NUM_SYNC_POINTS)-1) / NUM_SYNC_POINTS) {} + + ALWAYS_INLINE u32 GetSyncIndexForOffset(u32 offset) { return offset / m_bytes_per_block; } + + ALWAYS_INLINE void AddSyncsForOffset(u32 offset) { + const u32 end = GetSyncIndexForOffset(offset); + for (; m_used_block_index < end; m_used_block_index++) { + if (m_sync_objects[m_used_block_index]) { + Helpers::warn("GL stream buffer: Fence slot we're trying to insert is already in use"); + } + + m_sync_objects[m_used_block_index] = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0); + } + } + + ALWAYS_INLINE void WaitForSync(GLsync& sync) { + glClientWaitSync(sync, GL_SYNC_FLUSH_COMMANDS_BIT, GL_TIMEOUT_IGNORED); + glDeleteSync(sync); + sync = nullptr; + } + + ALWAYS_INLINE void EnsureSyncsWaitedForOffset(u32 offset) { + const u32 end = std::min(GetSyncIndexForOffset(offset) + 1, NUM_SYNC_POINTS); + for (; m_available_block_index < end; m_available_block_index++) { + if (!m_sync_objects[m_available_block_index]) [[unlikely]] { + Helpers::warn("GL stream buffer: Fence slot we're trying to wait on is not in use"); + } + + WaitForSync(m_sync_objects[m_available_block_index]); + } + } + + void AllocateSpace(u32 size) { + // add sync objects for writes since the last allocation + AddSyncsForOffset(m_position); + + // wait for sync objects for the space we want to use + EnsureSyncsWaitedForOffset(m_position + size); + + // wrap-around? + if ((m_position + size) > m_size) { + // current position ... buffer end + AddSyncsForOffset(m_size); + + // rewind, and try again + m_position = 0; + + // wait for the sync at the start of the buffer + WaitForSync(m_sync_objects[0]); + m_available_block_index = 1; + + // and however much more we need to satisfy the allocation + EnsureSyncsWaitedForOffset(size); + m_used_block_index = 0; + } + } + + u32 GetChunkSize() const override { return m_size / NUM_SYNC_POINTS; } + + u32 m_position = 0; + u32 m_used_block_index = 0; + u32 m_available_block_index = NUM_SYNC_POINTS; + u32 m_bytes_per_block; + std::array m_sync_objects{}; + }; + + class BufferStorageStreamBuffer : public SyncingStreamBuffer { + public: + ~BufferStorageStreamBuffer() override { + glBindBuffer(m_target, m_buffer_id); + glUnmapBuffer(m_target); + glBindBuffer(m_target, 0); + } + + MappingResult Map(u32 alignment, u32 min_size) override { + if (m_position > 0) m_position = Common::alignUp(m_position, alignment); + + AllocateSpace(min_size); + if ((m_position + min_size) > (m_available_block_index * m_bytes_per_block)) [[unlikely]] { + Helpers::panic("GL stream buffer: Invalid size passed to Unmap"); + } + + const u32 free_space_in_block = ((m_available_block_index * m_bytes_per_block) - m_position); + return MappingResult{static_cast(m_mapped_ptr + m_position), m_position, m_position / alignment, free_space_in_block / alignment}; + } + + u32 Unmap(u32 used_size) override { + if ((m_position + used_size) > m_size) [[unlikely]] { + Helpers::panic("GL stream buffer: Invalid size passed to Unmap"); + } + + if (!m_coherent) { + if (GLAD_GL_VERSION_4_5 || GLAD_GL_ARB_direct_state_access) { + glFlushMappedNamedBufferRange(m_buffer_id, m_position, used_size); + } else { + Bind(); + glFlushMappedBufferRange(m_target, m_position, used_size); + } + } + + const u32 prev_position = m_position; + m_position += used_size; + return prev_position; + } + + static std::unique_ptr Create(GLenum target, u32 size, bool coherent = true) { + glGetError(); + + GLuint buffer_id; + glGenBuffers(1, &buffer_id); + glBindBuffer(target, buffer_id); + + const u32 flags = GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | (coherent ? GL_MAP_COHERENT_BIT : 0); + const u32 map_flags = GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | (coherent ? 0 : GL_MAP_FLUSH_EXPLICIT_BIT); + if (GLAD_GL_VERSION_4_4 || GLAD_GL_ARB_buffer_storage) + glBufferStorage(target, size, nullptr, flags); + else if (GLAD_GL_EXT_buffer_storage) + glBufferStorageEXT(target, size, nullptr, flags); + + GLenum err = glGetError(); + if (err != GL_NO_ERROR) { + glBindBuffer(target, 0); + glDeleteBuffers(1, &buffer_id); + return {}; + } + + u8* mapped_ptr = static_cast(glMapBufferRange(target, 0, size, map_flags)); + AssertMsg(mapped_ptr, "Persistent buffer was mapped"); + + return std::unique_ptr(new BufferStorageStreamBuffer(target, buffer_id, size, mapped_ptr, coherent)); + } + + private: + BufferStorageStreamBuffer(GLenum target, GLuint buffer_id, u32 size, u8* mapped_ptr, bool coherent) + : SyncingStreamBuffer(target, buffer_id, size), m_mapped_ptr(mapped_ptr), m_coherent(coherent) {} + + u8* m_mapped_ptr; + bool m_coherent; + }; + +} // namespace + +std::unique_ptr OpenGLStreamBuffer::Create(GLenum target, u32 size) { + std::unique_ptr buf; + if (GLAD_GL_VERSION_4_4 || GLAD_GL_ARB_buffer_storage || GLAD_GL_EXT_buffer_storage) { + buf = BufferStorageStreamBuffer::Create(target, size); + if (buf) return buf; + } + + // BufferSubData is slower on all drivers except NVIDIA... +#if 0 + const char* vendor = reinterpret_cast(glGetString(GL_VENDOR)); + if (std::strcmp(vendor, "ARM") == 0 || std::strcmp(vendor, "Qualcomm") == 0) { + // Mali and Adreno drivers can't do sub-buffer tracking... + return BufferDataStreamBuffer::Create(target, size); + } + + return BufferSubDataStreamBuffer::Create(target, size); +#else + return BufferDataStreamBuffer::Create(target, size); +#endif +} \ No newline at end of file diff --git a/third_party/duckstation/gl/stream_buffer.h b/third_party/duckstation/gl/stream_buffer.h new file mode 100644 index 00000000..6b3562e7 --- /dev/null +++ b/third_party/duckstation/gl/stream_buffer.h @@ -0,0 +1,53 @@ +// SPDX-FileCopyrightText: 2019-2023 Connor McLaughlin +// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0) + +#pragma once + +#include +// Comment to avoid clang-format reordering the glad header + +#include +#include +#include +#include + +#include "duckstation_compat.h" +#include "helpers.hpp" + +class OpenGLStreamBuffer { + public: + virtual ~OpenGLStreamBuffer(); + + ALWAYS_INLINE GLuint GetGLBufferId() const { return m_buffer_id; } + ALWAYS_INLINE GLenum GetGLTarget() const { return m_target; } + ALWAYS_INLINE u32 GetSize() const { return m_size; } + + void Bind(); + void Unbind(); + + void SetDebugName(std::string_view name); + + struct MappingResult { + void* pointer; + u32 buffer_offset; + u32 index_aligned; // offset / alignment, suitable for base vertex + u32 space_aligned; // remaining space / alignment + }; + + virtual MappingResult Map(u32 alignment, u32 min_size) = 0; + + /// Returns the position in the buffer *before* the start of used_size. + virtual u32 Unmap(u32 used_size) = 0; + + /// Returns the minimum granularity of blocks which sync objects will be created around. + virtual u32 GetChunkSize() const = 0; + + static std::unique_ptr Create(GLenum target, u32 size); + + protected: + OpenGLStreamBuffer(GLenum target, GLuint buffer_id, u32 size); + + GLenum m_target; + GLuint m_buffer_id; + u32 m_size; +}; \ No newline at end of file diff --git a/third_party/fmt b/third_party/fmt new file mode 160000 index 00000000..f8581bce --- /dev/null +++ b/third_party/fmt @@ -0,0 +1 @@ +Subproject commit f8581bcecf317e8753887b68187c9ef1ba0524f4 From 89d129211e6cbdd96e3ca78d830150ae92fd8d85 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 19 Oct 2024 17:23:54 +0300 Subject: [PATCH 07/20] HLE DSP: Add AAC decoder toggle for enabling/disabling AAC decoding (#611) * HLE DSP: Add AAC decoder toggle * Fix derp --- src/core/audio/hle_core.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/core/audio/hle_core.cpp b/src/core/audio/hle_core.cpp index a616f317..70a8e71d 100644 --- a/src/core/audio/hle_core.cpp +++ b/src/core/audio/hle_core.cpp @@ -632,7 +632,7 @@ namespace Audio { AAC::Message response; switch (request.command) { - case AAC::Command::EncodeDecode: + case AAC::Command::EncodeDecode: { // Dummy response to stop games from hanging response.resultCode = AAC::ResultCode::Success; response.decodeResponse.channelCount = 2; @@ -643,10 +643,13 @@ namespace Audio { response.command = request.command; response.mode = request.mode; - // We've already got an AAC decoder but it's currently disabled until mixing & output is properly implemented - // TODO: Uncomment this when the time comes - // aacDecoder->decode(response, request, [this](u32 paddr) { return getPointerPhys(paddr); }); + // TODO: Make this a toggle in config.toml. Currently we have it off by default until we finish the DSP mixer. + constexpr bool enableAAC = false; + if (enableAAC) { + aacDecoder->decode(response, request, [this](u32 paddr) { return getPointerPhys(paddr); }); + } break; + } case AAC::Command::Init: case AAC::Command::Shutdown: From c97a174cd12dd77180a63f7d86d10a7c2e5df806 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 19 Oct 2024 18:16:33 +0300 Subject: [PATCH 08/20] Silence invalid offsetof warning --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fe72f3b6..641a0055 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ if(APPLE) endif() if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format-nonliteral -Wno-format-security") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format-nonliteral -Wno-format-security -Wno-invalid-offsetof") endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") From af1fe1399617b6209faaa9164bda277032640d99 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sun, 20 Oct 2024 16:41:41 +0300 Subject: [PATCH 09/20] Make Android builds official & update readme (#612) --- docs/img/KirbyAndroid.png | Bin 0 -> 580748 bytes readme.md | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 docs/img/KirbyAndroid.png diff --git a/docs/img/KirbyAndroid.png b/docs/img/KirbyAndroid.png new file mode 100644 index 0000000000000000000000000000000000000000..05e8b466b2a9bca97911662191c7771e27857475 GIT binary patch literal 580748 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Å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%0De^#sq_s7Rhq_5b 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уVLb)nh=5#CC!ep*ZR*`3<8w!h~14~9#5Ot=0qnZ3Q0r_Yrkz2N%9 zN5xhjxE47C{e0K5I67^6YrA_~y_U`Dv{mOuoBYTr zE|F>as@p0BUF<7_ZB?rt-z%>>>6f|q&C+GrF;Dm|-#D8YIQ?DM{v|I@T(`UzKrTi^HRd%q_>fONIQpyAD6j>0+qLuIg;@``@XyP{iKP_x_T) z*?*P`d#{|&Bv7`&d9{GAk$J*BgW0+{S}EzgD~ z*}Pg*zGQOAKU?Q@IJBW?fzO`xIlswE%e2o`~TMe?-ylZH{K-o_09diyX&8`R23L(d;C~f@R;mupJmyL z?y?#zUB`Sg>Dl*{|9>2}|CSw6_pv*^LfL`;;N=}$eGX-R6m8kw8p}2%jRz5-#^dSzniP`ee>Th%k96mngj*^Dbi{&+N*b1 zcGoZd{}1hdEY@vrZ})S)V)-)Tvfu7xE|v*Q%2Sv!{V$kgx;*8$vG13v{_X`asdb`a zFPritbQT0&I`+U#W_Lp5+jl0CGGzxVzgtSUHAzfaw6|s7ro-uHX207PaBl-Q%Z}~U z)2%n0uD!T7=kV=2jj``4jc4WF+WvL-g3r5mn^jdLd_FwYR%_n{f$}VVEAQREUvTgK zyuUW>@Bi=qZ$2#VU-RqD#QRN?Y(wV%IQP1&raa^L&r|oRro31#`~UMX-Us|qOXqVh zIn&&>@Mb~&Z|?8br@i+-yjI3J*CqvNIBQ@W2|fAhqCzv&j{({Hyi?OMC0hilzm zp|jaK`*xIO%;()@_WOyg_P+m}qVlyFv0LBY+xE6T`=BekW=-pUreD&y+u5&X(W##zx1>8HA z8#mu`?(I#p<#^MUo2k41U{ia%;``E%4jpW``wfSDearQ)t*+r;rkFeNHY9bGZHeL&*8O}ps3c_d zq9vQU<*Sd0)~hdT{}9{F%KExLX*JK@J^dm7)QvYsrsenC+akaBr}OXK{r`{sdpEg0 z>3;QN=H2#opA0Ii7j5W#;my5Hub<_7Xz*0u)A3!`1eiLGSrwUIocCg#NZ8GgFC~ek z>q@i?FUVf6I@^6|J%^LVmun}*RlPWtgJ+ZkJ?v~zntIbLq6X?wvvcE4iCKbQJF z2OBk3uK&V!#r(U`(!#R5!}m_{vCZtgIxV!Pu9l}K?$E!xADG2+M6*sWy(REI>x$H6 zLF?TN3{?|Ot?bU*{+?-7p7~zJ2c-+|E%x?yv9Rj@1w4DzlEyzwLiVzN%i? z^X=T=%q^lXl1&`WZ=D#!Y5JuydHsB|O&`wwkNCg#?%vY#a(wbPCiYG>TI!wJaAo`A zqHn#*cW;TkI{#euqJ4huiZjpW9J{p0CZA=|OTmN;^_6qj0#|A>b4*NKmLpQ7x;I`> zMfgL-gmqF2*8J!@-ujd8|CQRKot#TA>qjiUx72;DwBw82SAUzWaR1i-e}4S!{~!GS zpTA~#&h%YR@Xpn|KGng|U#`4Q)13QrQ+jhz%HJY|y|*4FeE*d#A8_n?qw=TC%tCu( zcxA7i*4vTyYaO>?-QHCO0;#d=r?SQJ?I%8+x?%ml=UK;hH`FDIpPA*W9)57&`}MQ` zi}S9x`g`|4-VOKq-wE-*6X)#XI}`bQ>oQ5Z{JfVtubJJ+)S6xAzbyV%yZoMH@7~4s zzxDqgUH|>J@!E|$xPDAGD&G>9@ZWYjL&_|Nf?0E9KOft=_0{fEho{sXVp6KP)F4~T zxInhtns@J-)Ei9I$NOy``!D@s+@7>fuvomp`Gb4qgCFsK<^SFLx%NZPgU(|y>~Q;Yl8A9&oqA#nDO8#Zl~vilAGF#NrGAoR^GiL#A#+{Mz2Yb9dt zmT-Ts-LSs)O?G|h^qKcm9ip?Np2)vm`tr=rh7Y38F0Z_9T=KEs{&(f%U*Rk@Lb{8T zFRu`(doh2x!%sVb2h}sac$|HAclYy|Z9f8Mb|kY;mTl<#vx=dz)!+m>ck66N6ULGa zk;fUHikdV@Rb{BZ`6rO-5yOzFY`0-%3Ga*5G}omuv6 zv&Zw$9sJvBH+Rnd$8=%!k|1_9Q}C8+v$nbXlIs-DPrtG4_S<=vHge8>d8Y-mh?X&T z_i6+A10o)C?anAZW83;`)ytbZZR@_Y+WtEG{>{nh{cqm z+rG|dg?n9KCQDs!OBzGV^wd+u_J;G>nB@%ptsir43hPSTuy7TlWpVH7rX5l*f?5Oh zrp&8eY5SbZ`f2OFsV6;WB`}JMGBNn+JgHmjHFslm;1d*Z@iFkdw6 zoMgXrTjJ6RX_JffNlw{aR~6FUFdJ?+eAmHVbA9Wp*}L_VdDd=`Sg_8rbArTNFI(Y& z<01Q3-m!2!bT!BzTKKH%-Q3lOx82qI?pxoOz4?5Q!^iSbqI^~tZZ_WC|9MvJr+>%4U9bO`{QG14zp1rf4z`#1f7V$p**s6kcjNE- z_m_37Zv6AE^x{%6)2Wve76rcOD{}bou&1iEd7im_#D<-bRqMXIGCH^M#iDmbx_3i7 zI5@;s{qD@jJ)~E?l7m4Yrtqx4;;e+}|MNVa&g(N-{)v6hQ*GTP`oWB8tJuX#U+liL z`o*8i2pZ(U}td={+>P5vbfwrlwUdL`XIptU@c7xhe^v^ZsajU+4dI z+JVPs(Z2QP-_ZLN@z;J7N9FI! zZolZ(U@%SVOzDhQdK_k-Y9r+?#-{%gOs{av75eNns2MvQlY)vd{1XIO3DZerfx|I@EH>gu%Bn(1E4dvZkuW;(QH z+v-l-bbzmZ#{AaPdoJrUy!~_!d?8Z-sE@ACJWKOtTt!*PeipM?^XA6xxbSyt_4l_g z9$YXN-0YU3Zugq8!FRU8WA*IrdDp@oe$!(9%xlIH8YOPPull!N&h``U*&Hud4u*KH zd73}7`d|Lw{k+X^f9}0!a^b97-!k1Qn|1TW|EE&wGnLPz_*Fe~pZ?j={^qS4yLWzk zUKe$L%U!1JKX0~8>;r9Z(>j!9Wqvk%Yxi^}6+Wewgk(p)hl`eZ{>gjryNpdyghRUR z|KWE2xj*}79%by6+`sWb`lA1v6hC=Hc__bJ%sBa2xMHoo^ny-?S3Dio=N3w5sAhC* z>fw{#|298fgynCpl7p2*ih=Qq4+=c$J_!O7>@L;CD!f^+P(%I{TlI?!d6%mFnwL(# za}t}HTPl26!Qt2BUwbNE)>rRp$o z`95c5iu=#MwK)FoseM1*=D&IKF?e>k@a(mEZ~mOzcy`{rsB|myz=_AJWfgcCOhh>T zw*0b@=n=niA;0*3+IGqOgc*xv+r6ywmH(zB+?Lz_aDKszJB7R2gH7hlP^`Nny4l$E zR*z5!gY|vZyG4g(c5~m7xZisJLVN8D*;&DieVdAk#11TYC^aGKU8woy)Oj~QT$^~e z^233970+XS z($G79`9IHD?Q_L;lk)AHXIV~iEPmg&H+#1*)m-*;YFVW`rB8l6drXM!>>CHt?rs!~ zJajZGVe+ciyEj$-DBtO0?UPvZ$s)_({g<6-$sX z_kY~?_o%x4hW$UjoPRU#9 zc?2ePHB6~#VO*8H()L7n=DN*|^H~fM)#W=m+BRKg@_1@Fb9z~k;r7oj51o6~8Y{B& z?2h35k5*}3eBAYIaZXj}3Y%Gf)Qg$cm44i}JhM3SjF7?tfoF4_YRfd&>s^!Gye%K*9h#%PK4hNvG<6# zuec%U`8K71TbJK`zx(BAO-H5M?)|KL-U|vPUkj{X`RD1Lp9|`aPuv%rRa74KMap%l zQ>$Xks@SVjFX^>Rxp8*gC9lM70@in=ii-c&Xs?P-Zdsp{9db(6XiD76=;P~kSd`u< z*M}!o>ts&%XF96CC@xt$#(n4Y3yW_FmGmr_GWS8>tG~NAm<4w6UEcUBF@D8XHl`cQ zSIuYJ9Sb^mF(F6!&J%vcgDdoF^A~Kmbk2BdL{hM3fY`4VfjS#cASaAE@sAm3QCcki_!F%U8vWjvx5<;=_ga=h`jL;7>l(;XzCfWQTb4$(fMf2Kt4i?`RI}>r|#!A`s1&629hBmNy z|56AL6I^01^@^(V31AIe9y`$J_rnGUX*d2Z8m z>##$uXYPKyaqN}zvF-hTc8Te0FSYj#+hHp6OvLBpRNhTfdD~^JWwQTROWk06AHs80 zzu;=upDDb_Wh?W0wD*NQ4_mM1<$g$tE%!l`!UE3^UEWPvE4LoHaDCmivWt74T8R2t zxr0{E?09i&^2<~EETV5r=9btv)&9)wv+b{bvt2vwK5N0j7iUaY23fs2BxuWV*xKOE zp}lXP-H4t!tLG{6*4}xK7W@yMx%qc>ph2TQzi9E|=*U;yU6b26Zb`=Lub0TaELz2| zy_UoIN99HJbBDIgjX%Ay#q-olkE``tKV>IZoL>}V9UrXR-zwvbZ)cB6R zXRr9ZFNR#b_$M%pC2;v7>vc=4;&pOQi8^WBZtdDTsd{SRBvwHw-Qr+@hDeRtSMEVG zH!N_R(PVow{Gev6xL1GDdl9oYSIy);1ei+){kkUpjJad->L{b=73Q&}X{%ja$IB(~Jb(z~2Y)^c%^qBhvlLue= z7o1eoEq7ed9sefkoxb#~EgN{hGd|tKz1U|xcqkKex86&~?nkdUtcP3B0T)_7J#DCiy4jj(9a5yP%wE>gp zl*eYfSAPg?Pk;St^$)L9#zl)iZY&lSWz*;VSUK}y?xNNiJ14Qa^vm`{$US&)f?u7r zgSq@s#k`Y`OvRdX1uW4_>Xfj5<*b~4+99p4!5zjeB_i`#ipm8cN|d*1eB z29Fu#6GiN^xAP|_{9JY-p;R_!`q6Dh+0&nz>6m(K`tf|0*oub%Kkb7~@+4M$Y3vQ5p6v)6My zE@9aH#Q5dTO(_?g7tFa?apkgwlGWL#+gEQ22&*NCU1h~Rm)!M3qD=_O8@HF#n1L>$KD9OzoP2apDar!*J^Hjzni)F7r^=2`*W!y7Cc6pHAl>onIdweEz zrtMyI)u(V(Y^kZ;s)n$i2dwrkjGA&wUQ~Bh*rZtBv_`3A@fTHe^Da#9kM9Z0+P!ba z3iU9I+n{`g1t4c$5e%P1zt?cH_^?NpXq%E8( z7Nm1-$*&t{oBW?%S`dG=L^fpq)I%-{Tz{^rb&k_YHdx0UtSqodt9}vZySJrNLUkvV zez8%l?NMIgsV|lFE6MfEi68Sn-F904+J!r_eBleeS1-e~*q7>Fwz%tU@nZG;)H{JY z7Z`2(a#iBDRJzPxtp)RVm+p%DdzYbH*Nxfp{UV(!dg6?r@CYx z%4t2t?{#8N>?O6iANjSIxh|be;9v?!)`_0I(*8uuiaT2C=T-krdHz%}*!^SYyFVrD zTONE_KV^rkUA*3w%vx#ae#d`18n+e8?r8)q31>GfPq^~9L|ZHE{u#!sIiCyVu0GH2 z-8pmr0d53NStxU5xeyEvUOIY!C>oc>O zn+MWv?vQ&iegB`Owsn7QtY`oAWU_zEg+OiorO%e`IUBx0r$StN#w(7XTRYDFlRW5U zZ0_*>-Kxd{XZgB|?X%}grv6*9=#^*cx|eCK%#ZI&{xghEI^6m!V&|28&s5KSIlkBN zj^h^&fnT%i5BY!UmFkVXt^fJ-jO$H`8X30@`R}!^w{rOz->P5FcAaT{!m6goJ?#b! zb7vcP%`Z0+lVqOpBb;|J=K@28zmHho$^Uu4{_lX6^%llQHK7V>|EIX$(R|;%)xNOf z*Ag8KX@Ok{A6bj%2FuNGUUYj|tG&z5iE<4l4T1GB!L1Aped1HMGc^VJ*EKv(y!O6% z2U|nM%P*Sj4Mp8WJNR5G<63_w%)Y-ZmWRjAV#Utp+}(Rm9H^7MBlhh2fwDNJZ8u|C z4I)?jEp0rSv*4u9{uOJ?wQ~)`z4ABj4v&#KvB&>+k>YmO4n zjAt`_O`Z1!M4o*r-eyzT+{Ormc4;sU7{A&$a9*~&Z%{N1%aNUx_DYkKUH>s~yu8!e- zdvQ^I{JE-cPi;0Y@4n+F7F%t#@@>v4i8L?Im4B)qeld9|wSxb;%kJqn1B@LC4z&0_ zEVdOm#Ji5^(4AxZUNP1$OsloHf93ckvCxM+TO$`<(O%d3%XL5BvP&%cp7A#CJC(F# zlSFr(Ta=8md$JFnWV~{!{OEGAGfD!cfy}E8 zh0lxB2{hc2wBES#18eIkHk%i^xmV&XmHs>^ad;Ic9=FD_dcR`XRhG= zn#G4gZ4CCNKIf-ZdzKk7T*cblIGExlR^7U~^!!K1iez|Y% zi+B_5Lgdv$=9>$={2%wT;hZz;T|OnB`4}dZ z_Hv=4*S+=IC(q^PIpmWvW%>nH#_Z5kf2$?#4vYL*R@L9}a9(T|9jDLU;#~o)|s14pvh7xH2)iExEvKkTW+^_v%+(qxlEtRen2|@n-qYij2~wI|J@K zD5xuYcBtur=|P+4Sqk#fGs0K=U0!+d>W@u~|I{lVR4GiTsrmJC`8j@8t!o~sRs4-V zMKkl(PXsp^V+_pPe(muy=1W_qSCCndJ58!?=I@8gG`CzU)k~gO>vSfE!%^YDRfmID z%8lO{yiNSG{f^9E>7BoS1^oNCx<0Rc_m_<)k360b>A1%5**4JD`*7KLYgeydwCTqy zh8Ff<6De7qU=ESp&u5-_D85Kl=KfOU9s|caibZb{FKqIjefO5kN+ch* zD64jj{_sn|%HU*bOcNYC)+*f_k;m#64m0W|zl0FMI^V|Qqa9PCqo2T@@ zlidI2x9|JTxI5vbdZKcRM24c5)jab*8kh6C6cztjdGNOF+S|NTXaA}^XZagXRoQ;# z?l?WypsbbuU731Mx?slY-2!gf+WBnD^8%xu=OmTYB+dO?Y%e*XIDX@w1AVSf=Y5!} zrn^~x{*9CR^{)$Sq8aw)BwhFxDzW>1?R7<;y2KZ^zb(AKMY-o}#jTH*!xrt`a(BDq z@7*7yYZ(&_9xmLwz)d3a;(4~n+Q+}vbFm&edv?|5FK0J@Q`rCG+~o^K%;#1(UcRzd zsxd?0mQUUu(STL5;;(K$%Q{~CtEaj=x3WTE_dMMv`%Ycj@odX#o3F0oQif}{Yl$2< zvuW1`y$tT37gW~ISg|JYgTBc6Pj_Q)Y*Jpe+SKz)cH@nycR3h$1@AnYI&Jr#sj@59 z1?};kt-14v{reQN>nS;}vhw0Zn19#Y+kF3gQMJk+Aw>t%Eh~H1zL3+Hv+?YzJLlA= z%F3UA^YZdaU%g9xe{-hZ7HE^~&;MrfEj#VRkzUV5?_UZ2QrYM@|IA5#iGMryaYQ}x zQm9|BBSM1zu#nSo?$7fzHO>V0u9Q7?b>XQxm0cEF^31+fEm*gJKSTLf@S8)q(oE~F z-42Yrv8s->HhfzVSA1~CtMBWJl^nQ5mg<*i!rP212K@kPH? z8luXk=wCFrzDdV&?;@L6yI(S%0*b5lXq@*+YhgV8d1<`+*P}=8%=7WK7S8pZ@}~3D z#)v{C1#wyL&^EDO`-H@_s=vIR`LYUtyxH!luWRx_rVO-yd%i|qLj$A0F%wR`RE z+8dh}Z#))X`Y3j)bmshQJL{R}-^A4ZX!*`1c530Ps<3RoRc0IC+}(Ed!!|J;4hEO* zpN(RA?R8blUN2`%5c%%f93$MabNR2%V8#$0Y0gV&O=h-vNj=67{pNe@bb9=yx$u6y z^wW!{C4Twr-llguRciZ6ju%d!vo3P2n6|>Ik+1S~;=>bDLuOwOddR;2qwM2I>10OE zv{(7BmS#+v%-~zi@q|k^z_!U?+ApW`>#L5d-8YP@@b}p_%gS$s$?N@#=bV_%T@xT{ zx<2SWdyx{u!!UVAhy9o4BV zU|XSo*{a8d`8kW{SZXh~zqGD;!}ZV#4(*%R|&*WJe73N1?E z3#Z@b12-)}txJ|Op|$@e8u+mQYN8|`j(VaK`Okv<(2E*8%u!ylezduG4?_ucn0f-HY-&i^~}^U?>R zp&xpulpiZISa<0l-$IVhs|&IhcfAb?6=S{`#cWi6ZIbhZXX1%r8{YLNaqj;&_utPu zZj43WME76e7f&jRI&k;v+gTs=%deS)G{^r{wx1*OBJ*vJ)N)>f-Ls!*?>im;V%4je z!Fx5|h=d0(%`TRn$(?tLb>FKC%MSbQatSSqm;J!9vPi)vWX7z6M=Ix?l(}EYoVSlx z(P55J!;8p23Zjoy7|PyUse8S4`=472!dXu+|6FF{QGes_O6MewC9N^DC)7TivUK;| zg6^v0a`rbq-tBJtnzY$d{>xEoM#tm}=~uFs*k1aUyF~xc_fG<6-5($0yTd+l-Rc5) z6YmdmPdwntyR~zk-&V;J&RH^Lv$LcRpJT6k8F>4~w%bqTWdEu%KUiI6eK$IFOJrW| z=g^3s>ztn+pEj*~n)P$>H1+4#Y-dL;`$^2t zrBY=s{{HI7d+hvQZd;v84Kqyy@*cO%vr?}S*lR3X%d~pi8nc*ZGj*$Gp1m?n{qLPk zzsqw=OER7+Y+w3od*7W3^M;dxa~|)Tx~RQ1b@k4tUt=CN8edfZ{Y~6cAi!T#emRra zHj%KqJ2zCGFrBS={&LE++MBv-&P-BBn5g^rY*VXRM7PfNNb~KL+w(V{3-~qBcb9W@ z(6_fI7d@}obK=dKSGPk#qSM^By}7@wZ^M+ClNtT}pMU$3l9evrs=GtZb)~$<{@0J^ zY6%-iY>|E1AFGv@hf;o;CL$=ga?zVag^B=kuz{u1=PJb7Swkl{qt|GyT?d2$!XNt2T6<*`=b$ z#C+Ad^Rqc~M8;0*mw`^LOLnjSB)ihbUF-b&y&w1Ot$p4oyK+zEmGTu9I~J|FA6$8> z^_EAK@&Xrz39%7Zomv>Q1M0#SIoj{N6nM*bg+*+{ingHjF4|7}#oS-;KQFrETxPuT z`Kr&s>mEMrZP>JJ<)kyrhqf^2&G_^=#A|!}#-+PrPuMEf?%cG7t6+*X_jCc40K+Nf zO=9QwpRs$V!I}B+%ErUZ3uSu*eq;yUT%3@t9m>BsDN+1$tM00$Xa7#=dJ$q0k(Rvm zv9stS-Pe5YSFE{w)gjh?rO^bfy&1xe4aWbhr-w8DWIl9?TRdxJtH%G%GR7+h7`|L6 zNVwq|&((XyOZ-P)rOWtha*xp2T>-CFOT7Ehe_5Mj z(L7O>2Yp&0bGEck{l(a~zFAR%Be0+pG^P0t6^;*5(`+hxL`0M3Ah0TmijEYX1HogvIKNJ|WxkdTv*Aq*&FU)ZJ zJLS%ntK2ICC~7#4oQZd`YT^oGHi8ZVfx)r(=H{^Ab0HlX6t{UdA)Pz za}_W)EI;tSytDeRw@E3p`G;86XNlmwF47g18{)KCjQT&{3^X!MFRo2ydn`TSb>oa= z19l1C8zmPvRvuRW^JFsrn;%b(R9MW|SYdH3#`kd*d)(q{36k#}_da5X?_h7<|L2qU z{UxVXHdt?ex8`|6-P(t2hYZqr51IBHT+P^AE?l;bYo>Tr%-K2I)o*Sbc<`;)^3Xvu zvu2~sslohA3_IqX`FZ0*gKg=vZ?7_{KlMioiTyZpJp0d>c<$ey^Z!59uiBFEaqg+TXZ}5u|97ynEmqIK+imee{jQC- z+1DhlXZDw`&CB2abKBo1%k4jEht61V=z;4b*5IwSm3P_vb~Md+(e^*$O+uWp*U}_^ z#|^9JxW@_#J!qfIxuaEq(fShOqqcyD|Nj1dcg*%{i?2k@X8w-;9gCSbtS`C$6#RC+ z?whf-z5Vw3Z|DEboF8RjYhCJj?{mxl<2<=)_D|V@`c_=sw8_0+Zs!u=s%N4VR)rbU zH$90E|F@2Liv9OBvhwn~XYM-GXX3zLvgrb&I^&Cs%GpijS`2==71F^{d)9rG{dqv| z(`No3d{zqa9Gg!_FXy)?Y`C3Y_kHJd{-*Zt_o~lVRi;gTdFHWF><`7Y;S1k;gj%gT zRC}P%@@sc^(%T;0Oetes2gBb94678T@QGY%5wEu^W-tqf)x_;aIfBXNX|NdnEw?4O~ zD(&uNVe2d3-w37zJgs5aGi%+eJ@zs;GHCWuQ=f!9J{cRi zbB1MciJk5C&6Ag#?Y1z!zjc>R&+397PKKPpRRM;(?NWDo7Jqu4SsWZRJ0>7QuOi{P zN6TX#U-O4+ZcUaJ_Pob^!2Vr(yYlNQmzwEidgrfPbAP`t`Fs7B=ie^w|22JE)#HV} zd~IfzS+=}+_RH_#YxybH_4hq_Rkqvq-R zvRL_du6wp<@y+_(+L&{$?GMg$aV4^UHd`8B z@;Tyh-cp;AsqfZhFq^$CSy*-bN8Or|KW}_Ww4#!>+y9>NZ0ark@O1}V#Lq^qJ38;v z?n@R2mG|+uw{|RTI=Lq2`;@R>U-P4_?8u(5WZ}PTTaRZvx1D=OvSOE4{`6ge(QFIWFEC_~YFl^vkgh_;+``6f z&n`}Io+JI`&nMfbO8<49IL!F?YrEU8bMvyMTo#yBrV+C*b)NHVmlvz-*sSt6Stb>D zn%rK|?9AeRVd>xUkO3ps&`A~ZhgV5(yclBiGt#x z4X3l)HymF7D!wFaTI*NqDTY1u&q@?GXk63kckFlDdF;l#FIvWH6{e~zjZEH@QLC`) z(cVe>bSiZ!uE^gixNv>Zu5{+B_bXP^xtFeTh!9BfOg8jD_EcGcq8u*rVp;ai?>V>ZyN)8-8e?|98lh@I*R?*V+=ciW7S8sT2 zQfC|9y$euugm{nmcO!6H@si_PA~XzoqN=K;A2+n4XR-THp-*Oi$afpVtH z6+3@zx$y0xO*9K>t_uj6!@^)*F@9h^x1@a+T{ks#Q=Wd&L{O|Ug z`?Y?oV$SUOde+?W*939Smi@i!nBq$$x4$lup41k*VeOfDM@{bUSlocZyw`nB}_J}gMYg(M)~)>GN0C$3D{xC;nu<7+Z8&|)uxcD&9?Ca}4l0QppZ+zBWb>aDs zUfJveCr+C^VKFIe^7G#0tg8QF=JoZjg{t>uU&;M?W8Gns|2s-33h(&@1ZpHy*(3GWxSGG6ok zROCBz&_&sI$@$EnT3!>^sE+yhWe-aeqi5vaVee5cS-T=P=l0v8_E4cow+?LkQntUk zW%0Q!2g_uB-%;+r{ppTb{L8+IS+6a-TF=h6+ju$t@40#Z9vNHz{hI&wP51GxX2!6u z`Y|)au3ft7^k&!BBHzhZ$}hNGxG&F?VAAmVXt8&_sMY0-feUYncg{P;TPz*qxy?`|yO!f$0J%d)^g;$SnvltXT2^SU+XIb#5ZC_L5KCj285;9KL zo!46V_2RZWs9c5Ik8SBL%E zmRC0mZ8u!Ldf{A{`?eLIw>;iyyum8iYICF54(7nD`**`)mqy>eK6m0JrSi%4iCY)d zzxw@n)th;G(-vikKK2rx>9=mv3*``x8>!#>-pu?qWme6j>F;H_`*csOn=0xg6vj4d z&evnpzME>w$(`sE=134)l#u3Lx^|QIAs3X)w>vf~X^qkazkcS` z%mI}hQi(IX&X;NxO{gzBo>8>UPIg)Rt(}MWC~Pf0yR4P#s^H#BOow-D3>R=Z%KrKG zSKe3AAv5L`$nM;J*Pqp7_cGBvA)l1?W;A}-wfWM!FK*wO&F#0y*Z)}g_rb&6Wxo@0 z+W!TZ&Yu!?ML1gL{8Fx+O{=U$bA4mh8u=~onYw1@t#dx|IxfPe>@|LUsS9}7=;&;F ze(IKcA5K`UI_+g*9Gg}aSoS8S#VGLJfxcT_%k8&_&gkCeqP|tCV?I;B&rQGgtNcIf zw8r_jqpJUuB)9o`=RdjsG>-fxta-}1n@5a!PMjo9bsfKrdc=ge7f!8K%?~cP)KGC{ z%2mZFi`Hk&%-ASY^viW^;L+nObIJ@tmdx?+%nvKbVqM6dwJ7+kuBTw{94oQ4R(FMz z|5ja2|MaXYP2%;(l-oa;a%SD0@FM)_1vmD6p7#y=mh9}w5N-;bb47UhO&QC^D+%tU z9kWWgOM_zqm)d#!^0jZA@z-jF*fNVNep|f4KWhK=^fx=fT`Iw${80O4{BuReEmv6t z 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%0DeJbZIP?5XPvG72+@Cz& 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