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,
vertexSource.insertLayoutSpecifier(name, locationString);
fragmentSource.insertLayoutSpecifier(name, locationString);
ASSERT(varying.interpolation == sh::INTERPOLATION_SMOOTH);
vertexSource.insertQualifierSpecifier(name, "out");
fragmentSource.insertQualifierSpecifier(name, "in");
const char *vsQualifier = "out";
const char *fsQualifier = "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.
......@@ -427,8 +443,6 @@ void GlslangWrapper::GetShaderSource(const gl::ProgramState &programState,
// Bind the default uniforms for vertex and fragment shaders.
// See corresponding code in OutputVulkanGLSL.cpp.
const std::string uniformsSearchString("@@ DEFAULT-UNIFORMS-SET-BINDING @@");
const std::string driverUniformsDescriptorSet =
"set = " + Str(kDriverUniformsDescriptorSetIndex);
const std::string uniformsDescriptorSet = "set = " + Str(kUniformsDescriptorSetIndex);
......
......@@ -609,19 +609,16 @@
3194 VULKAN : dEQP-GLES3.functional.buffer.copy.* = SKIP
// 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.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.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.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.max_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:
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.strides.int2_10_10_10.* = SKIP
......@@ -647,6 +644,9 @@
3193 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.uint.* = 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:
2950 VULKAN : dEQP-GLES3.functional.polygon_offset.float32_result_depth_clamp = FAIL
2950 VULKAN : dEQP-GLES3.functional.polygon_offset.float32_factor_1_slope = FAIL
......@@ -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_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:
// - FramebufferVk::invalidate*:
......@@ -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.texture_2d.primitives.lines = 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