OpenGL: Fix rendered textures being flipped.

This was because the clip space of OpenGL has an inverted Y compared to
other APIs. This commit:
 - Updates SPIRV-Cross to the latest version
 - Uses the new vertex.flip_vert_y option in ShaderModuleGL
 - Enables tests that are now passing in GL.
This commit is contained in:
Corentin Wallez 2017-11-13 12:05:18 -08:00 committed by Corentin Wallez
parent f280e87f36
commit ff57ccbcf1
5 changed files with 11 additions and 8 deletions

View File

@ -23,12 +23,14 @@ namespace d3d12 {
: ShaderModuleBase(builder), device(device) { : ShaderModuleBase(builder), device(device) {
spirv_cross::CompilerHLSL compiler(builder->AcquireSpirv()); spirv_cross::CompilerHLSL compiler(builder->AcquireSpirv());
spirv_cross::CompilerHLSL::Options options; spirv_cross::CompilerGLSL::Options options_glsl;
options.shader_model = 51; options_glsl.vertex.flip_vert_y = false;
options.flip_vert_y = false; options_glsl.vertex.fixup_clipspace = true;
options.fixup_clipspace = true; compiler.spirv_cross::CompilerGLSL::set_options(options_glsl);
compiler.set_options(options); spirv_cross::CompilerHLSL::Options options_hlsl;
options_hlsl.shader_model = 51;
compiler.spirv_cross::CompilerHLSL::set_options(options_hlsl);
ExtractSpirvInfo(compiler); ExtractSpirvInfo(compiler);

View File

@ -57,6 +57,7 @@ namespace opengl {
#else #else
options.version = 440; options.version = 440;
#endif #endif
options.vertex.flip_vert_y = true;
compiler.set_options(options); compiler.set_options(options);
// Rename the push constant block to be prefixed with the shader stage type so that uniform names // Rename the push constant block to be prefixed with the shader stage type so that uniform names

View File

@ -439,7 +439,7 @@ TEST_P(InputStateTest, MixedEverything) {
DoTestDraw(pipeline, 1, 1, {{0, &buffer0}, {1, &buffer1}}); DoTestDraw(pipeline, 1, 1, {{0, &buffer0}, {1, &buffer1}});
} }
NXT_INSTANTIATE_TEST(InputStateTest, D3D12Backend, MetalBackend) NXT_INSTANTIATE_TEST(InputStateTest, D3D12Backend, MetalBackend, OpenGLBackend)
// TODO for the input state: // TODO for the input state:
// - Add more vertex formats // - Add more vertex formats

View File

@ -308,4 +308,4 @@ TEST_P(PrimitiveTopologyTest, TriangleStrip) {
}); });
} }
NXT_INSTANTIATE_TEST(PrimitiveTopologyTest, D3D12Backend, MetalBackend) NXT_INSTANTIATE_TEST(PrimitiveTopologyTest, D3D12Backend, MetalBackend, OpenGLBackend)

@ -1 +1 @@
Subproject commit e8eae4d7dde433b1a8dc7e9a977508f8cef9c984 Subproject commit 694cad533296df02b4562f4a5a20cba1d1a9dbaf