Skip to content
Snippets Groups Projects
Unverified Commit 2eb4d27c authored by bunnei's avatar bunnei Committed by GitHub
Browse files

Merge pull request #2524 from ReinUsesLisp/fixup-extension

gl_shader_gen: Always declare extensions after the version declaration 
parents 90c9d703 21c0b4de
No related branches found
No related tags found
No related merge requests found
...@@ -35,6 +35,7 @@ Device::Device(std::nullptr_t) { ...@@ -35,6 +35,7 @@ Device::Device(std::nullptr_t) {
bool Device::TestVariableAoffi() { bool Device::TestVariableAoffi() {
const GLchar* AOFFI_TEST = R"(#version 430 core const GLchar* AOFFI_TEST = R"(#version 430 core
// This is a unit test, please ignore me on apitrace bug reports.
uniform sampler2D tex; uniform sampler2D tex;
uniform ivec2 variable_offset; uniform ivec2 variable_offset;
void main() { void main() {
......
...@@ -170,7 +170,8 @@ GLShader::ProgramResult CreateProgram(const Device& device, Maxwell::ShaderProgr ...@@ -170,7 +170,8 @@ GLShader::ProgramResult CreateProgram(const Device& device, Maxwell::ShaderProgr
CachedProgram SpecializeShader(const std::string& code, const GLShader::ShaderEntries& entries, CachedProgram SpecializeShader(const std::string& code, const GLShader::ShaderEntries& entries,
Maxwell::ShaderProgram program_type, BaseBindings base_bindings, Maxwell::ShaderProgram program_type, BaseBindings base_bindings,
GLenum primitive_mode, bool hint_retrievable = false) { GLenum primitive_mode, bool hint_retrievable = false) {
std::string source = "#version 430 core\n"; std::string source = "#version 430 core\n"
"#extension GL_ARB_separate_shader_objects : enable\n\n";
source += fmt::format("#define EMULATION_UBO_BINDING {}\n", base_bindings.cbuf++); source += fmt::format("#define EMULATION_UBO_BINDING {}\n", base_bindings.cbuf++);
for (const auto& cbuf : entries.const_buffers) { for (const auto& cbuf : entries.const_buffers) {
......
...@@ -19,8 +19,7 @@ static constexpr u32 PROGRAM_OFFSET{10}; ...@@ -19,8 +19,7 @@ static constexpr u32 PROGRAM_OFFSET{10};
ProgramResult GenerateVertexShader(const Device& device, const ShaderSetup& setup) { ProgramResult GenerateVertexShader(const Device& device, const ShaderSetup& setup) {
const std::string id = fmt::format("{:016x}", setup.program.unique_identifier); const std::string id = fmt::format("{:016x}", setup.program.unique_identifier);
std::string out = "#extension GL_ARB_separate_shader_objects : enable\n\n"; std::string out = "// Shader Unique Id: VS" + id + "\n\n";
out += "// Shader Unique Id: VS" + id + "\n\n";
out += GetCommonDeclarations(); out += GetCommonDeclarations();
out += R"( out += R"(
...@@ -82,8 +81,7 @@ void main() { ...@@ -82,8 +81,7 @@ void main() {
ProgramResult GenerateGeometryShader(const Device& device, const ShaderSetup& setup) { ProgramResult GenerateGeometryShader(const Device& device, const ShaderSetup& setup) {
const std::string id = fmt::format("{:016x}", setup.program.unique_identifier); const std::string id = fmt::format("{:016x}", setup.program.unique_identifier);
std::string out = "#extension GL_ARB_separate_shader_objects : enable\n\n"; std::string out = "// Shader Unique Id: GS" + id + "\n\n";
out += "// Shader Unique Id: GS" + id + "\n\n";
out += GetCommonDeclarations(); out += GetCommonDeclarations();
out += R"( out += R"(
...@@ -113,8 +111,7 @@ void main() { ...@@ -113,8 +111,7 @@ void main() {
ProgramResult GenerateFragmentShader(const Device& device, const ShaderSetup& setup) { ProgramResult GenerateFragmentShader(const Device& device, const ShaderSetup& setup) {
const std::string id = fmt::format("{:016x}", setup.program.unique_identifier); const std::string id = fmt::format("{:016x}", setup.program.unique_identifier);
std::string out = "#extension GL_ARB_separate_shader_objects : enable\n\n"; std::string out = "// Shader Unique Id: FS" + id + "\n\n";
out += "// Shader Unique Id: FS" + id + "\n\n";
out += GetCommonDeclarations(); out += GetCommonDeclarations();
out += R"( out += R"(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment