Apply half pixel offset in the vertex shader. (#16)

This commit is contained in:
Skyth (Asilkan) 2025-03-30 03:47:16 +03:00 committed by GitHub
parent b15b5e4728
commit 421e3b3e79
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 2 deletions

View file

@ -28,7 +28,8 @@ struct PushConstants
#define g_Booleans vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 256)
#define g_SwappedTexcoords vk::RawBufferLoad<uint>(g_PushConstants.SharedConstants + 260)
#define g_AlphaThreshold vk::RawBufferLoad<float>(g_PushConstants.SharedConstants + 264)
#define g_HalfPixelOffset vk::RawBufferLoad<float2>(g_PushConstants.SharedConstants + 264)
#define g_AlphaThreshold vk::RawBufferLoad<float>(g_PushConstants.SharedConstants + 272)
[[vk::constant_id(0)]] const uint g_SpecConstants = 0;
@ -39,7 +40,8 @@ struct PushConstants
#define DEFINE_SHARED_CONSTANTS() \
uint g_Booleans : packoffset(c16.x); \
uint g_SwappedTexcoords : packoffset(c16.y); \
float g_AlphaThreshold : packoffset(c16.z) \
float2 g_HalfPixelOffset : packoffset(c16.z); \
float g_AlphaThreshold : packoffset(c17.x);
uint g_SpecConstants();

View file

@ -1826,6 +1826,10 @@ void ShaderRecompiler::recompile(const uint8_t* shaderData, const std::string_vi
out += '}';
#endif
}
else
{
out += "\toPos.xy += g_HalfPixelOffset * oPos.w;\n";
}
if (simpleControlFlow)
{