mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-12 09:09:47 +12:00
Add fmt submodule and port shader decompiler instructions to it
This commit is contained in:
parent
90f411889b
commit
a2b8a7b23d
4 changed files with 15 additions and 8 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -76,3 +76,6 @@
|
||||||
[submodule "third_party/metal-cpp"]
|
[submodule "third_party/metal-cpp"]
|
||||||
path = third_party/metal-cpp
|
path = third_party/metal-cpp
|
||||||
url = https://github.com/Panda3DS-emu/metal-cpp
|
url = https://github.com/Panda3DS-emu/metal-cpp
|
||||||
|
[submodule "third_party/fmt"]
|
||||||
|
path = third_party/fmt
|
||||||
|
url = https://github.com/fmtlib/fmt
|
||||||
|
|
|
@ -93,6 +93,7 @@ if (NOT ANDROID)
|
||||||
target_link_libraries(AlberCore PUBLIC SDL2-static)
|
target_link_libraries(AlberCore PUBLIC SDL2-static)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_subdirectory(third_party/fmt)
|
||||||
add_subdirectory(third_party/toml11)
|
add_subdirectory(third_party/toml11)
|
||||||
include_directories(${SDL2_INCLUDE_DIR})
|
include_directories(${SDL2_INCLUDE_DIR})
|
||||||
include_directories(third_party/toml11)
|
include_directories(third_party/toml11)
|
||||||
|
@ -419,7 +420,7 @@ set(ALL_SOURCES ${SOURCE_FILES} ${FS_SOURCE_FILES} ${CRYPTO_SOURCE_FILES} ${KERN
|
||||||
target_sources(AlberCore PRIVATE ${ALL_SOURCES})
|
target_sources(AlberCore PRIVATE ${ALL_SOURCES})
|
||||||
|
|
||||||
target_link_libraries(AlberCore PRIVATE dynarmic cryptopp glad resources_console_fonts teakra)
|
target_link_libraries(AlberCore PRIVATE dynarmic cryptopp glad resources_console_fonts teakra)
|
||||||
target_link_libraries(AlberCore PUBLIC glad capstone)
|
target_link_libraries(AlberCore PUBLIC glad capstone fmt::fmt)
|
||||||
|
|
||||||
if(ENABLE_DISCORD_RPC AND NOT ANDROID)
|
if(ENABLE_DISCORD_RPC AND NOT ANDROID)
|
||||||
target_compile_definitions(AlberCore PUBLIC "PANDA3DS_ENABLE_DISCORD_RPC=1")
|
target_compile_definitions(AlberCore PUBLIC "PANDA3DS_ENABLE_DISCORD_RPC=1")
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#include "PICA/shader_decompiler.hpp"
|
#include "PICA/shader_decompiler.hpp"
|
||||||
|
|
||||||
|
#include <fmt/format.h>
|
||||||
|
|
||||||
#include "config.hpp"
|
#include "config.hpp"
|
||||||
|
|
||||||
using namespace PICA;
|
using namespace PICA;
|
||||||
|
@ -254,14 +256,14 @@ void ShaderDecompiler::compileInstruction(u32& pc, bool& finished) {
|
||||||
|
|
||||||
switch (opcode) {
|
switch (opcode) {
|
||||||
case ShaderOpcodes::MOV: setDest(operandDescriptor, dest, src1); break;
|
case ShaderOpcodes::MOV: setDest(operandDescriptor, dest, src1); break;
|
||||||
case ShaderOpcodes::ADD: setDest(operandDescriptor, dest, src1 + " + " + src2); break;
|
case ShaderOpcodes::ADD: setDest(operandDescriptor, dest, fmt::format("{} + {}", src1, src2)); break;
|
||||||
case ShaderOpcodes::MUL: setDest(operandDescriptor, dest, src1 + " * " + src2); break;
|
case ShaderOpcodes::MUL: setDest(operandDescriptor, dest, fmt::format("{} * {}", src1, src2)); break;
|
||||||
case ShaderOpcodes::MAX: setDest(operandDescriptor, dest, "max(" + src1 + ", " + src2 + ")"); break;
|
case ShaderOpcodes::MAX: setDest(operandDescriptor, dest, fmt::format("max({}, {})", src1, src2)); break;
|
||||||
case ShaderOpcodes::MIN: setDest(operandDescriptor, dest, "min(" + 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::DP3: setDest(operandDescriptor, dest, fmt::format("vec4(dot({}.xyz, {}.xyz))", src1, src2)); break;
|
||||||
case ShaderOpcodes::DP4: setDest(operandDescriptor, dest, "vec4(dot(" + src1 + ", " + src2 + "))"); break;
|
case ShaderOpcodes::DP4: setDest(operandDescriptor, dest, fmt::format("vec4(dot({}, {}))", src1, src2)); break;
|
||||||
case ShaderOpcodes::RSQ: setDest(operandDescriptor, dest, "vec4(inversesqrt(" + src1 + ".x))"); break;
|
case ShaderOpcodes::RSQ: setDest(operandDescriptor, dest, fmt::format("vec4(inversesqrt({}.x))", src1)); break;
|
||||||
|
|
||||||
default: Helpers::panic("GLSL recompiler: Unknown common opcode: %X", opcode); break;
|
default: Helpers::panic("GLSL recompiler: Unknown common opcode: %X", opcode); break;
|
||||||
}
|
}
|
||||||
|
|
1
third_party/fmt
vendored
Submodule
1
third_party/fmt
vendored
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit f8581bcecf317e8753887b68187c9ef1ba0524f4
|
Loading…
Add table
Reference in a new issue