Commit 7ef73a52 by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Support flat and centroid qualifiers

Bug: angleproject:3219 Change-Id: I2e0b60bda9c3af2b9eadf2efd3899250925897f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1600335 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 5517ce95
...@@ -411,9 +411,25 @@ void GlslangWrapper::GetShaderSource(const gl::ProgramState &programState, ...@@ -411,9 +411,25 @@ void GlslangWrapper::GetShaderSource(const gl::ProgramState &programState,
vertexSource.insertLayoutSpecifier(name, locationString); vertexSource.insertLayoutSpecifier(name, locationString);
fragmentSource.insertLayoutSpecifier(name, locationString); fragmentSource.insertLayoutSpecifier(name, locationString);
ASSERT(varying.interpolation == sh::INTERPOLATION_SMOOTH); const char *vsQualifier = "out";
vertexSource.insertQualifierSpecifier(name, "out"); const char *fsQualifier = "in";
fragmentSource.insertQualifierSpecifier(name, "in"); switch (varying.interpolation)
{
case sh::INTERPOLATION_SMOOTH:
break;
case sh::INTERPOLATION_CENTROID:
vsQualifier = "centroid out";
fsQualifier = "centroid in";
break;
case sh::INTERPOLATION_FLAT:
vsQualifier = "flat out";
fsQualifier = "flat in";
break;
default:
UNREACHABLE();
}
vertexSource.insertQualifierSpecifier(name, vsQualifier);
fragmentSource.insertQualifierSpecifier(name, fsQualifier);
} }
// Remove all the markers for unused varyings. // Remove all the markers for unused varyings.
...@@ -427,8 +443,6 @@ void GlslangWrapper::GetShaderSource(const gl::ProgramState &programState, ...@@ -427,8 +443,6 @@ void GlslangWrapper::GetShaderSource(const gl::ProgramState &programState,
// Bind the default uniforms for vertex and fragment shaders. // Bind the default uniforms for vertex and fragment shaders.
// See corresponding code in OutputVulkanGLSL.cpp. // See corresponding code in OutputVulkanGLSL.cpp.
const std::string uniformsSearchString("@@ DEFAULT-UNIFORMS-SET-BINDING @@");
const std::string driverUniformsDescriptorSet = const std::string driverUniformsDescriptorSet =
"set = " + Str(kDriverUniformsDescriptorSetIndex); "set = " + Str(kDriverUniformsDescriptorSetIndex);
const std::string uniformsDescriptorSet = "set = " + Str(kUniformsDescriptorSetIndex); const std::string uniformsDescriptorSet = "set = " + Str(kUniformsDescriptorSetIndex);
......
...@@ -609,19 +609,16 @@ ...@@ -609,19 +609,16 @@
3194 VULKAN : dEQP-GLES3.functional.buffer.copy.* = SKIP 3194 VULKAN : dEQP-GLES3.functional.buffer.copy.* = SKIP
// Shader support: // Shader support:
3219 VULKAN : dEQP-GLES3.functional.rasterization.flatshading.* = SKIP
3219 VULKAN : dEQP-GLES3.functional.negative_api.shader.link_program = FAIL 3219 VULKAN : dEQP-GLES3.functional.negative_api.shader.link_program = FAIL
3219 VULKAN : dEQP-GLES3.functional.negative_api.shader.use_program = FAIL 3219 VULKAN : dEQP-GLES3.functional.negative_api.shader.use_program = FAIL
3219 VULKAN : dEQP-GLES3.functional.shaders.linkage.varying.* = SKIP 3219 VULKAN : dEQP-GLES3.functional.shaders.linkage.varying.basic_types.mat* = SKIP
3219 VULKAN : dEQP-GLES3.functional.shaders.linkage.varying.struct.mat* = SKIP
3219 VULKAN : dEQP-GLES3.functional.shaders.conversions.* = SKIP 3219 VULKAN : dEQP-GLES3.functional.shaders.conversions.* = SKIP
3219 VULKAN : dEQP-GLES3.functional.shaders.functions.datatypes.* = SKIP 3219 VULKAN : dEQP-GLES3.functional.shaders.functions.datatypes.* = SKIP
3219 VULKAN : dEQP-GLES3.functional.shaders.qualification_order.variables.valid.* = SKIP
3219 VULKAN : dEQP-GLES3.functional.shaders.matrix.* = SKIP 3219 VULKAN : dEQP-GLES3.functional.shaders.matrix.* = SKIP
3219 VULKAN : dEQP-GLES3.functional.shaders.builtin* = SKIP
3219 VULKAN : dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.min_u* = FAIL 3219 VULKAN : dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.min_u* = FAIL
3219 VULKAN : dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.max_u* = FAIL 3219 VULKAN : dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.max_u* = FAIL
3219 VULKAN : dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.clamp_u* = FAIL 3219 VULKAN : dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.clamp_u* = FAIL
3219 VULKAN : dEQP-GLES3.functional.shaders.precision.* = SKIP
// New vertex attribute formats: // New vertex attribute formats:
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.strides.int2_10_10_10.* = SKIP 3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.strides.int2_10_10_10.* = SKIP
...@@ -647,6 +644,9 @@ ...@@ -647,6 +644,9 @@
3193 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.uint.* = SKIP 3193 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.uint.* = SKIP
3193 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.uvec* = SKIP 3193 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.uvec* = SKIP
// Vertex ID, Index ID
3221 VULKAN : dEQP-GLES3.functional.shaders.builtin_variable.vertex_id = FAIL
// Polygon offset: // Polygon offset:
2950 VULKAN : dEQP-GLES3.functional.polygon_offset.float32_result_depth_clamp = FAIL 2950 VULKAN : dEQP-GLES3.functional.polygon_offset.float32_result_depth_clamp = FAIL
2950 VULKAN : dEQP-GLES3.functional.polygon_offset.float32_factor_1_slope = FAIL 2950 VULKAN : dEQP-GLES3.functional.polygon_offset.float32_factor_1_slope = FAIL
...@@ -675,6 +675,12 @@ ...@@ -675,6 +675,12 @@
3205 VULKAN : dEQP-GLES3.functional.negative_api.vertex_array.draw_range_elements = FAIL 3205 VULKAN : dEQP-GLES3.functional.negative_api.vertex_array.draw_range_elements = FAIL
3205 VULKAN : dEQP-GLES3.functional.negative_api.vertex_array.draw_range_elements_incomplete_primitive = FAIL 3205 VULKAN : dEQP-GLES3.functional.negative_api.vertex_array.draw_range_elements_incomplete_primitive = FAIL
// Flat shading
3430 VULKAN : dEQP-GLES3.functional.rasterization.flatshading.* = FAIL
3430 VULKAN : dEQP-GLES3.functional.shaders.linkage.varying.basic_types.u* = FAIL
3430 VULKAN : dEQP-GLES3.functional.shaders.linkage.varying.struct.u* = FAIL
3430 VULKAN : dEQP-GLES3.functional.shaders.linkage.varying.struct.float_uvec2_vec3 = FAIL
// Misc unimplemented: // Misc unimplemented:
// - FramebufferVk::invalidate*: // - FramebufferVk::invalidate*:
...@@ -751,3 +757,4 @@ ...@@ -751,3 +757,4 @@
2950 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines = FAIL 2950 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.lines = FAIL
2950 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines = FAIL 2950 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.lines = FAIL
2950 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.primitives.line* = FAIL 2950 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.primitives.line* = FAIL
2950 ANDROID VULKAN : dEQP-GLES3.functional.shaders.builtin_variable.fragcoord_w = FAIL
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment