diff --git a/lib/dolphin/GXTev.cpp b/lib/dolphin/GXTev.cpp index d102ffe..1b0f4ab 100644 --- a/lib/dolphin/GXTev.cpp +++ b/lib/dolphin/GXTev.cpp @@ -61,10 +61,10 @@ void GXSetTevColor(GXTevRegID id, GXColor color) { void GXSetTevColorS10(GXTevRegID id, GXColorS10 color) { update_gx_state(g_gxState.colorRegs[id], aurora::Vec4{ - static_cast(color.r) / 1023.f, - static_cast(color.g) / 1023.f, - static_cast(color.b) / 1023.f, - static_cast(color.a) / 1023.f, + static_cast(color.r) / 255.f, + static_cast(color.g) / 255.f, + static_cast(color.b) / 255.f, + static_cast(color.a) / 255.f, }); } diff --git a/lib/gfx/gx.hpp b/lib/gfx/gx.hpp index 0b7cc63..c0d2c9a 100644 --- a/lib/gfx/gx.hpp +++ b/lib/gfx/gx.hpp @@ -310,6 +310,7 @@ static inline bool requires_load_conversion(const GXTexObj_& obj) { case GX_TF_C4: case GX_TF_C8: case GX_TF_C14X2: + case GX_TF_R8_PC: return true; default: return false; diff --git a/lib/gfx/gx_shader.cpp b/lib/gfx/gx_shader.cpp index c6aa18e..d82be4a 100644 --- a/lib/gfx/gx_shader.cpp +++ b/lib/gfx/gx_shader.cpp @@ -574,6 +574,7 @@ static inline std::string texture_conversion(const TextureConfig& tex, u32 stage break; case GX_TF_I4: case GX_TF_I8: + case GX_TF_R8_PC: // Splat R to RGBA out += fmt::format(FMT_STRING("\n sampled{0} = vec4(sampled{0}.r);"), stageIdx); break; diff --git a/lib/gfx/texture.hpp b/lib/gfx/texture.hpp index 90a8ff6..8d202e1 100644 --- a/lib/gfx/texture.hpp +++ b/lib/gfx/texture.hpp @@ -36,7 +36,7 @@ struct TextureRef { ~TextureRef() { wgpuTextureViewRelease(view); - wgpuTextureDestroy(texture); + wgpuTextureRelease(texture); } };