- fixed: Intel OpenGL did not quite recognize the "layout(location=0)" shader uniform definitions, so this had to be removed for OpenGL mode only so that Intel's compiler will continue to function normally for custom shaders.

This commit is contained in:
Rachael Alexanderson 2019-04-11 13:21:40 -04:00
parent 40a72c71f5
commit 482e9c0f2c
3 changed files with 12 additions and 2 deletions

View file

@ -878,8 +878,16 @@ PPCustomShaderInstance::PPCustomShaderInstance(PostProcessShader *desc) : Desc(d
// Setup pipeline
FString pipelineInOut;
pipelineInOut += "layout(location=0) in vec2 TexCoord;\n";
pipelineInOut += "layout(location=0) out vec4 FragColor;\n";
if (screen->IsVulkan())
{
pipelineInOut += "layout(location=0) in vec2 TexCoord;\n";
pipelineInOut += "layout(location=0) out vec4 FragColor;\n";
}
else
{
pipelineInOut += "in vec2 TexCoord;\n";
pipelineInOut += "out vec4 FragColor;\n";
}
FString prolog;
prolog += uniformTextures;

View file

@ -63,6 +63,7 @@ public:
VulkanFrameBuffer(void *hMonitor, bool fullscreen, VulkanDevice *dev);
~VulkanFrameBuffer();
bool IsVulkan() override { return true; }
void Update();

View file

@ -381,6 +381,7 @@ public:
DFrameBuffer (int width=1, int height=1);
virtual ~DFrameBuffer();
virtual void InitializeState() = 0; // For stuff that needs 'screen' set.
virtual bool IsVulkan() { return false; }
void SetSize(int width, int height);
void SetVirtualSize(int width, int height)