mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-13 12:31:38 +00:00
UBO works for Pixel Shaders if Binding for UBO is zero, otherwise fails. Probably why Vertex shader UBO is failing. Too tired to investigate right now.
This commit is contained in:
parent
904adb9e3d
commit
1f75ee49bf
9 changed files with 176 additions and 88 deletions
|
@ -511,11 +511,11 @@ static void BuildSwapModeTable()
|
|||
|
||||
const char* WriteRegister(API_TYPE ApiType, const char *prefix, const u32 num)
|
||||
{
|
||||
if(ApiType == API_GLSL)
|
||||
return ""; // Nothing to do here
|
||||
static char result[64];
|
||||
sprintf(result, " : register(%s%d)", prefix, num);
|
||||
return result;
|
||||
if(ApiType == API_GLSL)
|
||||
return ""; // Nothing to do here
|
||||
static char result[64];
|
||||
sprintf(result, " : register(%s%d)", prefix, num);
|
||||
return result;
|
||||
}
|
||||
const char* WriteBinding(API_TYPE ApiType, const u32 num)
|
||||
{
|
||||
|
@ -527,9 +527,9 @@ const char* WriteBinding(API_TYPE ApiType, const u32 num)
|
|||
}
|
||||
const char *WriteLocation(API_TYPE ApiType)
|
||||
{
|
||||
static char result[64];
|
||||
if(ApiType == API_GLSL && g_ActiveConfig.backend_info.bSupportsGLSLUBO)
|
||||
return "";
|
||||
static char result[64];
|
||||
sprintf(result, "uniform ");
|
||||
return result;
|
||||
}
|
||||
|
@ -620,7 +620,7 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType
|
|||
|
||||
WRITE(p, "\n");
|
||||
if(ApiType == API_GLSL && g_ActiveConfig.backend_info.bSupportsGLSLUBO)
|
||||
WRITE(p, "layout(std140, binding = 4) uniform PSBlock {\n");
|
||||
WRITE(p, "layout(std140, binding = 0) uniform PSBlock {\n");
|
||||
|
||||
WRITE(p, "%sfloat4 "I_COLORS"[4] %s;\n", WriteLocation(ApiType), WriteRegister(ApiType, "c", C_COLORS));
|
||||
WRITE(p, "%sfloat4 "I_KCOLORS"[4] %s;\n", WriteLocation(ApiType), WriteRegister(ApiType, "c", C_KCOLORS));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue