Commit 422c94bd by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Enable ES3 fragment output attribute locations

GLSLTest_ES3 end2end tests are enabled for Vulkan, though with suppressions for other features that are missing. Bug: angleproject:3199 Change-Id: Ie744e160eab2df9a5a4f2c67ea5acf4b865ea5bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565058 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 2a7de6b7
...@@ -156,7 +156,6 @@ void GlslangWrapper::GetShaderSource(const gl::ProgramState &programState, ...@@ -156,7 +156,6 @@ void GlslangWrapper::GetShaderSource(const gl::ProgramState &programState,
// Parse attribute locations and replace them in the vertex shader. // Parse attribute locations and replace them in the vertex shader.
// See corresponding code in OutputVulkanGLSL.cpp. // See corresponding code in OutputVulkanGLSL.cpp.
// TODO(jmadill): Also do the same for ESSL 3 fragment outputs.
for (const sh::Attribute &attribute : programState.getAttributes()) for (const sh::Attribute &attribute : programState.getAttributes())
{ {
// Warning: If we endup supporting ES 3.0 shaders and up, Program::linkAttributes is going // Warning: If we endup supporting ES 3.0 shaders and up, Program::linkAttributes is going
...@@ -182,6 +181,34 @@ void GlslangWrapper::GetShaderSource(const gl::ProgramState &programState, ...@@ -182,6 +181,34 @@ void GlslangWrapper::GetShaderSource(const gl::ProgramState &programState,
InsertQualifierSpecifierString(&vertexSource, attribute.name, ""); InsertQualifierSpecifierString(&vertexSource, attribute.name, "");
} }
// Parse output locations and replace them in the fragment shader.
// See corresponding code in OutputVulkanGLSL.cpp.
// TODO(syoussefi): Add support for EXT_blend_func_extended. http://anglebug.com/3385
const auto &outputLocations = programState.getOutputLocations();
const auto &outputVariables = programState.getOutputVariables();
for (const gl::VariableLocation &outputLocation : outputLocations)
{
if (outputLocation.arrayIndex == 0 && outputLocation.used() && !outputLocation.ignored)
{
const sh::OutputVariable &outputVar = outputVariables[outputLocation.index];
std::string locationString;
if (outputVar.location != -1)
{
locationString = "location = " + Str(outputVar.location);
}
else
{
// If there is only one output, it is allowed not to have a location qualifier, in
// which case it defaults to 0. GLSL ES 3.00 spec, section 4.3.8.2.
ASSERT(outputVariables.size() == 1);
locationString = "location = 0";
}
InsertLayoutSpecifierString(&fragmentSource, outputVar.name, locationString);
}
}
// Assign varying locations. // Assign varying locations.
for (const gl::PackedVaryingRegister &varyingReg : resources.varyingPacking.getRegisterList()) for (const gl::PackedVaryingRegister &varyingReg : resources.varyingPacking.getRegisterList())
{ {
......
...@@ -535,73 +535,121 @@ ...@@ -535,73 +535,121 @@
2950 VULKAN : dEQP-GLES3.functional.implementation_limits.max_combined_fragment_uniform_components = SKIP 2950 VULKAN : dEQP-GLES3.functional.implementation_limits.max_combined_fragment_uniform_components = SKIP
2950 VULKAN : dEQP-GLES3.functional.implementation_limits.max_transform_feedback_* = SKIP 2950 VULKAN : dEQP-GLES3.functional.implementation_limits.max_transform_feedback_* = SKIP
// ES3 shader support (unexpected @ token): // 3D texture (anglebug.com/3188), 2D array (anglebug.com/3189):
2950 VULKAN : dEQP-GLES3.functional.depth_stencil_clear.* = SKIP 3189 VULKAN : dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2darrayshadow_vertex = SKIP
2950 VULKAN : dEQP-GLES3.functional.buffer.* = SKIP 3189 VULKAN : dEQP-GLES3.functional.fbo.completeness.layer.2darr* = SKIP
2950 VULKAN : dEQP-GLES3.functional.shaders.* = SKIP 3189 VULKAN : dEQP-GLES3.functional.fbo.completeness.layer.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.texture.* = SKIP 3189 VULKAN : dEQP-GLES3.functional.fbo.color.tex2darray.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_ops.depth.* = SKIP 3189 VULKAN : dEQP-GLES3.functional.fbo.color.tex3d.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_ops.stencil.* = SKIP 3189 VULKAN : dEQP-GLES3.functional.texture.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_ops.depth_stencil.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_ops.random.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_ops.interaction.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_ops.scissor.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.render.stencil_clear.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.render.shared_colorbuffer_clear.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.render.shared_colorbuffer.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.color.tex* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.color.blend.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.blit.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.vertex_arrays.multiple_attributes.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.vertex_array_objects.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_out.basic.int.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_out.basic.uint.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_out.array.int.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_out.array.uint.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_out.random.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.samplers.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.rasterization.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.occlusion_query.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.instanced.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.rasterizer_discard.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.vertex_array.draw_element* = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.state.get_uniform* = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.state.get_active_unifor* = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.state.get_active_attrib = SKIP
2950 VULKAN : dEQP-GLES3.functional.fence_sync.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.dither.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.clipping.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.polygon_offset.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.draw.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.* = SKIP
// ES3 shader support (failing tests):
2950 VULKAN : dEQP-GLES3.functional.negative_api.shader.link_program = FAIL
2950 VULKAN : dEQP-GLES3.functional.negative_api.shader.use_program = FAIL
// 3D texture, 2D array:
2950 VULKAN : dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2darrayshadow_vertex = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.layer.2darr* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.layer.* = SKIP
// Multisampling: // Multisampling:
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.samples.* = SKIP 3204 VULKAN : dEQP-GLES3.functional.fbo.completeness.samples.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.msaa.* = SKIP 3204 VULKAN : dEQP-GLES3.functional.fbo.msaa.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.buffer.read_pixels_fbo_format_mismatch = SKIP 3204 VULKAN : dEQP-GLES3.functional.negative_api.buffer.read_pixels_fbo_format_mismatch = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.buffer.blit_framebuffer_multisample = SKIP 3204 VULKAN : dEQP-GLES3.functional.negative_api.buffer.blit_framebuffer_multisample = SKIP
2950 VULKAN : dEQP-GLES3.functional.multisample.* = SKIP 3204 VULKAN : dEQP-GLES3.functional.multisample.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.state_query.rbo.renderbuffer_samples = SKIP 3204 VULKAN : dEQP-GLES3.functional.state_query.rbo.renderbuffer_samples = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_out.* = SKIP 3204 VULKAN : dEQP-GLES3.functional.fragment_out.* = SKIP
3204 VULKAN : dEQP-GLES3.functional.rasterization.fbo.rbo_multisample* = SKIP
// Formats: // Formats:
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0.rgba32f = FAIL 2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0.rgba32f = FAIL
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.rgba32f = FAIL 2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.rgba32f = FAIL
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_int = FAIL
// Depth/Stencil textures:
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_int = FAIL
2905 VULKAN : dEQP-GLES3.functional.fbo.render.resize.tex2d_rgba8_depth_tex2d_depth_component16 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.render.resize.tex2d_rgba8_depth_tex2d_depth_component24 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.render.resize.tex2d_rgba8_depth_tex2d_depth_component32f = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.render.resize.tex2d_rgba8_depth_stencil_tex2d_depth24_stencil8 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.render.resize.tex2d_rgba8_depth_stencil_tex2d_depth32f_stencil8 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.* = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.depth_stencil_unsigned_int_24_8 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.depth24_stencil8 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.depth32f_stencil8 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_short = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component16 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component24 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_stencil_unsigned_int_24_8 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth24_stencil8 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component32f = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth32f_stencil8 = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.completeness.attachment_combinations.* = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.render.shared_depth_stencil.* = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.depth.* = SKIP
2905 VULKAN : dEQP-GLES3.functional.fbo.stencil.* = SKIP
2905 VULKAN : dEQP-GLES3.functional.state_query.fbo.framebuffer_attachment_component_type = SKIP
2905 VULKAN : dEQP-GLES3.functional.state_query.fbo.framebuffer_attachment_x_size_texture = SKIP
// Min/Max blending:
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.min = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.equation_src_func_dst_func.max = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.rgb_equation_alpha_equation.add_min = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.rgb_equation_alpha_equation.add_max = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.rgb_equation_alpha_equation.subtract_min = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.rgb_equation_alpha_equation.subtract_max = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.rgb_equation_alpha_equation.reverse_subtract_min = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.rgb_equation_alpha_equation.reverse_subtract_max = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.rgb_equation_alpha_equation.min* = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.rgb_equation_alpha_equation.max* = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.min = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.max = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.rgb_equation_alpha_equation.add_min = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.rgb_equation_alpha_equation.add_max = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.rgb_equation_alpha_equation.subtract_min = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.rgb_equation_alpha_equation.subtract_max = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.rgb_equation_alpha_equation.reverse_subtract_min = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.rgb_equation_alpha_equation.reverse_subtract_max = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.rgb_equation_alpha_equation.min* = SKIP
2897 VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.rgb_equation_alpha_equation.max* = SKIP
// Blit:
3200 VULKAN : dEQP-GLES3.functional.fbo.blit.* = SKIP
3200 VULKAN : dEQP-GLES3.functional.fragment_ops.scissor.framebuffer_blit_center = FAIL
3200 VULKAN : dEQP-GLES3.functional.fragment_ops.scissor.framebuffer_blit_corner = FAIL
// Buffer copy:
3194 VULKAN : dEQP-GLES3.functional.buffer.copy.* = SKIP
// Shader support:
3219 VULKAN : dEQP-GLES3.functional.shaders.* = SKIP
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
// 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.normalize.unsigned_int.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.half.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.usigned_int2_10_10_10.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.int.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.half.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.usigned_int2_10_10_10.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.int2_10_10_10.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.byte.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_byte.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.short.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_short.components* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.first.int2_10_10_10* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.offset.int2_10_10_10* = SKIP
3193 VULKAN : dEQP-GLES3.functional.vertex_array_objects.all_attributes = SKIP
3193 VULKAN : dEQP-GLES3.functional.draw.* = SKIP
3193 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.int.* = SKIP
3193 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.ivec* = SKIP
3193 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.uint.* = SKIP
3193 VULKAN : dEQP-GLES3.functional.default_vertex_attrib.uvec* = SKIP
// 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
// UBO: // UBO:
2950 VULKAN : dEQP-GLES3.functional.ubo.* = SKIP 2950 VULKAN : dEQP-GLES3.functional.ubo.* = SKIP
3219 VULKAN : dEQP-GLES3.functional.shaders.uniform_block.* = SKIP
// PBO: // PBO:
2950 VULKAN : dEQP-GLES3.functional.pbo.* = SKIP 2950 VULKAN : dEQP-GLES3.functional.pbo.* = SKIP
...@@ -624,34 +672,8 @@ ...@@ -624,34 +672,8 @@
2950 VULKAN : dEQP-GLES3.functional.state_query.indexed.transform_feedback_* = FAIL 2950 VULKAN : dEQP-GLES3.functional.state_query.indexed.transform_feedback_* = FAIL
2950 VULKAN : dEQP-GLES3.functional.state_query.shader.transform_feedback = FAIL 2950 VULKAN : dEQP-GLES3.functional.state_query.shader.transform_feedback = FAIL
// Validation errors:
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.depth_stencil_unsigned_int_24_8 = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.depth24_stencil8 = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.depth32f_stencil8 = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_short = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component16 = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component24 = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_stencil_unsigned_int_24_8 = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth24_stencil8 = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component32f = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth32f_stencil8 = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.completeness.attachment_combinations.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.render.shared_depth_stencil.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.depth.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.stencil.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.state_query.fbo.framebuffer_attachment_component_type = SKIP
2950 VULKAN : dEQP-GLES3.functional.state_query.fbo.framebuffer_attachment_x_size_texture = SKIP
// Misc unimplemented: // Misc unimplemented:
// - FramebufferVk::clearBuffer*:
2950 VULKAN : dEQP-GLES3.functional.fbo.render.resize.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.render.recreate_color.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.render.recreate_depth_stencil.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.color.clear.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fbo.color.repeated_clear.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.read_pixels.* = SKIP
// - FramebufferVk::invalidate*: // - FramebufferVk::invalidate*:
2950 VULKAN : dEQP-GLES3.functional.fbo.invalidate.* = SKIP 2950 VULKAN : dEQP-GLES3.functional.fbo.invalidate.* = SKIP
...@@ -661,10 +683,6 @@ ...@@ -661,10 +683,6 @@
// - BufferVk::copySubData: // - BufferVk::copySubData:
2950 VULKAN : dEQP-GLES3.functional.negative_api.buffer.copy_buffer_sub_data = SKIP 2950 VULKAN : dEQP-GLES3.functional.negative_api.buffer.copy_buffer_sub_data = SKIP
// - TextureVk::setCompressedImage:
2950 VULKAN : dEQP-GLES3.functional.negative_api.texture.generatemipmap = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.texture.compressed* = SKIP
// - ES3 Query Types: // - ES3 Query Types:
2950 VULKAN : dEQP-GLES3.functional.negative_api.fragment.begin_query = SKIP 2950 VULKAN : dEQP-GLES3.functional.negative_api.fragment.begin_query = SKIP
...@@ -701,6 +719,23 @@ ...@@ -701,6 +719,23 @@
2950 VULKAN : dEQP-GLES3.functional.state_query.shader.program_active_uniform_blocks = FAIL 2950 VULKAN : dEQP-GLES3.functional.state_query.shader.program_active_uniform_blocks = FAIL
2950 VULKAN : dEQP-GLES3.functional.state_query.shader.uniform_value_uint = FAIL 2950 VULKAN : dEQP-GLES3.functional.state_query.shader.uniform_value_uint = FAIL
2950 VULKAN : dEQP-GLES3.functional.lifetime.* = SKIP 2950 VULKAN : dEQP-GLES3.functional.lifetime.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.clipping.line.line_clip_viewport_center = FAIL
2950 VULKAN : dEQP-GLES3.functional.clipping.line.line_clip_viewport_corner = FAIL
2950 VULKAN : dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center = FAIL
2950 VULKAN : dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner = FAIL
2950 VULKAN : dEQP-GLES3.functional.clipping.point.point_clip_viewport_center = FAIL
2950 VULKAN : dEQP-GLES3.functional.clipping.point.point_clip_viewport_corner = FAIL
// To be triaged:
2950 VULKAN : dEQP-GLES3.functional.fragment_ops.interaction.basic_shader.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.fragment_ops.random.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.samplers.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.instanced.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.rasterizer_discard.* = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.vertex_array.draw_element* = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.state.get_uniform* = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.state.get_active_unifor* = SKIP
2950 VULKAN : dEQP-GLES3.functional.negative_api.state.get_active_attrib = SKIP
// Android Vulkan failures // Android Vulkan failures
2950 ANDROID VULKAN : dEQP-GLES3.functional.implementation_limits.max_combined_texture_image_units = FAIL 2950 ANDROID VULKAN : dEQP-GLES3.functional.implementation_limits.max_combined_texture_image_units = FAIL
...@@ -709,3 +744,9 @@ ...@@ -709,3 +744,9 @@
2950 ANDROID VULKAN : dEQP-GLES3.functional.state_query.integers.max_combined_texture_image_units_getinteger64 = FAIL 2950 ANDROID VULKAN : dEQP-GLES3.functional.state_query.integers.max_combined_texture_image_units_getinteger64 = FAIL
2950 ANDROID VULKAN : dEQP-GLES3.functional.state_query.integers.max_combined_uniform_blocks_getfloat = FAIL 2950 ANDROID VULKAN : dEQP-GLES3.functional.state_query.integers.max_combined_uniform_blocks_getfloat = FAIL
2950 ANDROID VULKAN : dEQP-GLES3.functional.state_query.integers.max_combined_uniform_blocks_getinteger64 = FAIL 2950 ANDROID VULKAN : dEQP-GLES3.functional.state_query.integers.max_combined_uniform_blocks_getinteger64 = FAIL
2950 ANDROID VULKAN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.rgb_func_alpha_func.* = SKIP
2950 ANDROID VULKAN : dEQP-GLES3.functional.fragment_ops.depth_stencil.stencil_ops.* = SKIP
2950 ANDROID VULKAN : dEQP-GLES3.functional.polygon_offset.* = 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.primitives.line* = FAIL
...@@ -612,6 +612,9 @@ void main() ...@@ -612,6 +612,9 @@ void main()
// Draw an array of points with the first vertex offset at 0 using gl_VertexID // Draw an array of points with the first vertex offset at 0 using gl_VertexID
TEST_P(GLSLTest_ES3, GLVertexIDOffsetZeroDrawArray) TEST_P(GLSLTest_ES3, GLVertexIDOffsetZeroDrawArray)
{ {
// TODO(syoussefi): missing ES3 shader feature support. http://anglebug.com/3221
ANGLE_SKIP_TEST_IF(IsVulkan());
constexpr int kStartIndex = 0; constexpr int kStartIndex = 0;
constexpr int kArrayLength = 5; constexpr int kArrayLength = 5;
constexpr char kVS[] = R"(#version 300 es constexpr char kVS[] = R"(#version 300 es
...@@ -674,6 +677,9 @@ void GLVertexIDIntegerTextureDrawArrays_helper(int first, int count, GLenum err) ...@@ -674,6 +677,9 @@ void GLVertexIDIntegerTextureDrawArrays_helper(int first, int count, GLenum err)
// https://github.com/KhronosGroup/WebGL/blob/master/sdk/tests/conformance2/rendering/vertex-id.html // https://github.com/KhronosGroup/WebGL/blob/master/sdk/tests/conformance2/rendering/vertex-id.html
TEST_P(GLSLTest_ES3, GLVertexIDIntegerTextureDrawArrays) TEST_P(GLSLTest_ES3, GLVertexIDIntegerTextureDrawArrays)
{ {
// TODO(syoussefi): missing ES3 shader feature support. http://anglebug.com/3221
ANGLE_SKIP_TEST_IF(IsVulkan());
// Have to set a large point size because the window size is much larger than the texture // Have to set a large point size because the window size is much larger than the texture
constexpr char kVS[] = R"(#version 300 es constexpr char kVS[] = R"(#version 300 es
flat out highp int vVertexID; flat out highp int vVertexID;
...@@ -732,6 +738,9 @@ TEST_P(GLSLTest_ES3, GLVertexIDOffsetFiveDrawArray) ...@@ -732,6 +738,9 @@ TEST_P(GLSLTest_ES3, GLVertexIDOffsetFiveDrawArray)
// Bug in Nexus drivers, offset does not work. (anglebug.com/3264) // Bug in Nexus drivers, offset does not work. (anglebug.com/3264)
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsOpenGLES()); ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsOpenGLES());
// TODO(syoussefi): missing ES3 shader feature support. http://anglebug.com/3221
ANGLE_SKIP_TEST_IF(IsVulkan());
constexpr int kStartIndex = 5; constexpr int kStartIndex = 5;
constexpr int kArrayLength = 5; constexpr int kArrayLength = 5;
constexpr char kVS[] = R"(#version 300 es constexpr char kVS[] = R"(#version 300 es
...@@ -2391,6 +2400,10 @@ TEST_P(GLSLTest_ES3, UnaryMinusOperatorSignedInt) ...@@ -2391,6 +2400,10 @@ TEST_P(GLSLTest_ES3, UnaryMinusOperatorSignedInt)
// Convers a bug with the unary minus operator on unsigned integer workaround. // Convers a bug with the unary minus operator on unsigned integer workaround.
TEST_P(GLSLTest_ES3, UnaryMinusOperatorUnsignedInt) TEST_P(GLSLTest_ES3, UnaryMinusOperatorUnsignedInt)
{ {
// TODO(syoussefi): missing [gs]etUniform support with unsigned formats.
// http://anglebug.com/2392
ANGLE_SKIP_TEST_IF(IsVulkan());
constexpr char kVS[] = constexpr char kVS[] =
"#version 300 es\n" "#version 300 es\n"
"in highp vec4 position;\n" "in highp vec4 position;\n"
...@@ -3329,6 +3342,10 @@ TEST_P(GLSLTest_ES3, VaryingStructNotDeclaredInFragmentShader) ...@@ -3329,6 +3342,10 @@ TEST_P(GLSLTest_ES3, VaryingStructNotDeclaredInFragmentShader)
// Test that a varying struct that gets used in the fragment shader works. // Test that a varying struct that gets used in the fragment shader works.
TEST_P(GLSLTest_ES3, VaryingStructUsedInFragmentShader) TEST_P(GLSLTest_ES3, VaryingStructUsedInFragmentShader)
{ {
// TODO(syoussefi): missing ES3 shader feature support.
// http://anglebug.com/3199
ANGLE_SKIP_TEST_IF(IsVulkan());
constexpr char kVS[] = constexpr char kVS[] =
"#version 300 es\n" "#version 300 es\n"
"in vec4 inputAttribute;\n" "in vec4 inputAttribute;\n"
...@@ -4183,6 +4200,10 @@ void main() ...@@ -4183,6 +4200,10 @@ void main()
// Test that a varying struct that's defined as a part of the declaration is handled correctly. // Test that a varying struct that's defined as a part of the declaration is handled correctly.
TEST_P(GLSLTest_ES3, VaryingStructWithInlineDefinition) TEST_P(GLSLTest_ES3, VaryingStructWithInlineDefinition)
{ {
// TODO(syoussefi): missing ES3 shader feature support.
// http://anglebug.com/3199
ANGLE_SKIP_TEST_IF(IsVulkan());
constexpr char kVS[] = R"(#version 300 es constexpr char kVS[] = R"(#version 300 es
in vec4 inputAttribute; in vec4 inputAttribute;
...@@ -4279,6 +4300,10 @@ void main() { ...@@ -4279,6 +4300,10 @@ void main() {
// is handled correctly. // is handled correctly.
TEST_P(GLSLTest_ES3, FlatVaryingUsedInFoldedTernary) TEST_P(GLSLTest_ES3, FlatVaryingUsedInFoldedTernary)
{ {
// TODO(syoussefi): missing ES3 shader feature support.
// http://anglebug.com/3219
ANGLE_SKIP_TEST_IF(IsVulkan());
constexpr char kVS[] = R"(#version 300 es constexpr char kVS[] = R"(#version 300 es
in vec4 inputAttribute; in vec4 inputAttribute;
...@@ -4498,6 +4523,10 @@ void main() ...@@ -4498,6 +4523,10 @@ void main()
// field. // field.
TEST_P(GLSLTest_ES3, ErrorMessageOfLinkInterfaceBlockFieldMismatch) TEST_P(GLSLTest_ES3, ErrorMessageOfLinkInterfaceBlockFieldMismatch)
{ {
// TODO(syoussefi): missing ES3 shader feature support.
// http://anglebug.com/3199
ANGLE_SKIP_TEST_IF(IsVulkan());
constexpr char kVS[] = R"(#version 300 es constexpr char kVS[] = R"(#version 300 es
uniform S { uniform S {
vec2 val1; vec2 val1;
...@@ -4533,6 +4562,10 @@ void main() ...@@ -4533,6 +4562,10 @@ void main()
// struct field. // struct field.
TEST_P(GLSLTest_ES3, ErrorMessageOfLinkInterfaceBlockStructFieldMismatch) TEST_P(GLSLTest_ES3, ErrorMessageOfLinkInterfaceBlockStructFieldMismatch)
{ {
// TODO(syoussefi): missing ES3 shader feature support.
// http://anglebug.com/3199
ANGLE_SKIP_TEST_IF(IsVulkan());
constexpr char kVS[] = R"(#version 300 es constexpr char kVS[] = R"(#version 300 es
struct T struct T
{ {
...@@ -5304,7 +5337,7 @@ ANGLE_INSTANTIATE_TEST(GLSLTestNoValidation, ...@@ -5304,7 +5337,7 @@ ANGLE_INSTANTIATE_TEST(GLSLTestNoValidation,
// Use this to select which configurations (e.g. which renderer, which GLES major version) these // Use this to select which configurations (e.g. which renderer, which GLES major version) these
// tests should be run against. // tests should be run against.
ANGLE_INSTANTIATE_TEST(GLSLTest_ES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES()); ANGLE_INSTANTIATE_TEST(GLSLTest_ES3, ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN());
ANGLE_INSTANTIATE_TEST(WebGLGLSLTest, ES2_D3D11(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN()); ANGLE_INSTANTIATE_TEST(WebGLGLSLTest, ES2_D3D11(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN());
......
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