Add support for EXT_blend_minmax

This is to add additional modes (MIN, MAX) to "BlendEquation".
- add cases for "GL_MIN" and "GL_MAX" into "PackGLBlendOp()" in
vk_cache_utils.cpp
- add enabling "blendMinMax" codes into vk_caps_utils.cpp

And, AUTHORS and CONTRIBUTORS are updated.

BUG=angleproject:2897
Tests: dEQP-GLES3.functional.fragment_ops.blend.*min*
       dEQP-GLES3.functional.fragment_ops.blend.*max*

Change-Id: I13a1d6d28a104b18e21697f9f23d77e4eda2d1a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1621582
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
This commit is contained in:
Minkyu Jeong 2019-05-21 17:13:08 +09:00 коммит произвёл Commit Bot
Родитель e794ddc8a6
Коммит 431ef2fdd3
5 изменённых файлов: 11 добавлений и 22 удалений

Просмотреть файл

@ -30,6 +30,7 @@ Advanced Micro Devices, Inc.
LG Electronics, Inc. LG Electronics, Inc.
IBM Inc. IBM Inc.
AdaptVis GmbH AdaptVis GmbH
Samsung Electronics, Inc.
Jacek Caban Jacek Caban
Mark Callow Mark Callow

Просмотреть файл

@ -146,3 +146,6 @@ IBM Inc.
AdaptVis GmbH AdaptVis GmbH
Sascha Kolodzey Sascha Kolodzey
Samsung Electronics, Inc.
Minkyu Jeong

Просмотреть файл

@ -39,6 +39,10 @@ uint8_t PackGLBlendOp(GLenum blendOp)
return static_cast<uint8_t>(VK_BLEND_OP_SUBTRACT); return static_cast<uint8_t>(VK_BLEND_OP_SUBTRACT);
case GL_FUNC_REVERSE_SUBTRACT: case GL_FUNC_REVERSE_SUBTRACT:
return static_cast<uint8_t>(VK_BLEND_OP_REVERSE_SUBTRACT); return static_cast<uint8_t>(VK_BLEND_OP_REVERSE_SUBTRACT);
case GL_MIN:
return static_cast<uint8_t>(VK_BLEND_OP_MIN);
case GL_MAX:
return static_cast<uint8_t>(VK_BLEND_OP_MAX);
default: default:
UNREACHABLE(); UNREACHABLE();
return 0; return 0;

Просмотреть файл

@ -53,6 +53,9 @@ void RendererVk::ensureCapsInitialized() const
mNativeExtensions.textureBorderClamp = false; // not implemented yet mNativeExtensions.textureBorderClamp = false; // not implemented yet
mNativeExtensions.translatedShaderSource = true; mNativeExtensions.translatedShaderSource = true;
// Enable EXT_blend_minmax
mNativeExtensions.blendMinMax = true;
mNativeExtensions.eglImage = true; mNativeExtensions.eglImage = true;
mNativeExtensions.eglImageExternal = true; mNativeExtensions.eglImageExternal = true;
// TODO(geofflang): Support GL_OES_EGL_image_external_essl3. http://anglebug.com/2668 // TODO(geofflang): Support GL_OES_EGL_image_external_essl3. http://anglebug.com/2668

Просмотреть файл

@ -587,28 +587,6 @@
2905 VULKAN : dEQP-GLES3.functional.state_query.fbo.framebuffer_attachment_component_type = 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 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: // Blit:
3200 VULKAN : dEQP-GLES3.functional.fbo.blit.* = SKIP 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_center = FAIL