mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-09 14:10:33 +01:00
util/blend: Add advanced blend modes
VK_EXT_blend_operation_advanced and GL_NV_blend_equation_advanced defines additional blend operations beyond what OpenGL KHR_blend_equation_advanced provides. Add these modes to pipe_advanced_blend_mode. Also add a default case to gl_nir_lower_blend_equation_advanced.c to handle unsupported modes gracefully. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38929>
This commit is contained in:
parent
1eed6960c5
commit
4294e0bbd4
2 changed files with 34 additions and 0 deletions
|
|
@ -415,6 +415,8 @@ calc_blend_result(nir_builder *b,
|
|||
break;
|
||||
case PIPE_ADVANCED_BLEND_NONE:
|
||||
UNREACHABLE("not real cases");
|
||||
default:
|
||||
UNREACHABLE("not supported advanced blend mode");
|
||||
}
|
||||
|
||||
if (val)
|
||||
|
|
|
|||
|
|
@ -135,6 +135,38 @@ enum pipe_advanced_blend_mode {
|
|||
PIPE_ADVANCED_BLEND_HSL_SATURATION,
|
||||
PIPE_ADVANCED_BLEND_HSL_COLOR,
|
||||
PIPE_ADVANCED_BLEND_HSL_LUMINOSITY,
|
||||
|
||||
/* Extended blend modes */
|
||||
PIPE_ADVANCED_BLEND_SRC,
|
||||
PIPE_ADVANCED_BLEND_DST,
|
||||
PIPE_ADVANCED_BLEND_SRC_OVER,
|
||||
PIPE_ADVANCED_BLEND_DST_OVER,
|
||||
PIPE_ADVANCED_BLEND_SRC_IN,
|
||||
PIPE_ADVANCED_BLEND_DST_IN,
|
||||
PIPE_ADVANCED_BLEND_SRC_OUT,
|
||||
PIPE_ADVANCED_BLEND_DST_OUT,
|
||||
PIPE_ADVANCED_BLEND_SRC_ATOP,
|
||||
PIPE_ADVANCED_BLEND_DST_ATOP,
|
||||
PIPE_ADVANCED_BLEND_XOR,
|
||||
PIPE_ADVANCED_BLEND_INVERT,
|
||||
PIPE_ADVANCED_BLEND_INVERT_RGB,
|
||||
PIPE_ADVANCED_BLEND_LINEARDODGE,
|
||||
PIPE_ADVANCED_BLEND_LINEARBURN,
|
||||
PIPE_ADVANCED_BLEND_VIVIDLIGHT,
|
||||
PIPE_ADVANCED_BLEND_LINEARLIGHT,
|
||||
PIPE_ADVANCED_BLEND_PINLIGHT,
|
||||
PIPE_ADVANCED_BLEND_HARDMIX,
|
||||
PIPE_ADVANCED_BLEND_PLUS,
|
||||
PIPE_ADVANCED_BLEND_PLUS_CLAMPED,
|
||||
PIPE_ADVANCED_BLEND_PLUS_CLAMPED_ALPHA,
|
||||
PIPE_ADVANCED_BLEND_PLUS_DARKER,
|
||||
PIPE_ADVANCED_BLEND_MINUS,
|
||||
PIPE_ADVANCED_BLEND_MINUS_CLAMPED,
|
||||
PIPE_ADVANCED_BLEND_CONTRAST,
|
||||
PIPE_ADVANCED_BLEND_INVERT_OVG,
|
||||
PIPE_ADVANCED_BLEND_RED,
|
||||
PIPE_ADVANCED_BLEND_GREEN,
|
||||
PIPE_ADVANCED_BLEND_BLUE,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue