enable :ext:`GL_EXT_multisampled_render_to_texture`.
* ``PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD``: Atomic floating point adds are
supported on images, buffers, and shared memory.
-* ``PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND``: True if the driver needs blend state to use zero/one instead of destination alpha for RGB/XRGB formats.
* ``PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS``: True if the driver wants TESSINNER and TESSOUTER to be inputs (rather than system values) for tessellation evaluation shaders.
* ``PIPE_CAP_DEST_SURFACE_SRGB_CONTROL``: Indicates whether the drivers
supports switching the format between sRGB and linear for a surface that is
spec@arb_texture_float@fbo-blending-formats@GL_INTENSITY32F_ARB,Fail
spec@arb_texture_float@fbo-blending-formats@GL_LUMINANCE32F_ARB,Fail
spec@arb_texture_float@fbo-blending-formats@GL_LUMINANCE_ALPHA32F_ARB,Fail
-spec@arb_texture_float@fbo-blending-formats@GL_RGB16F,Fail
spec@arb_texture_float@fbo-blending-formats@GL_RGB32F,Fail
spec@arb_texture_float@fbo-blending-formats@GL_RGBA32F,Fail
spec@arb_texture_float@texwrap formats bordercolor,Fail
case PIPE_CAP_FRAGMENT_COLOR_CLAMPED:
case PIPE_CAP_SEAMLESS_CUBE_MAP:
case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
- case PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND:
return 0;
case PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART:
case PIPE_CAP_PRIMITIVE_RESTART:
case PIPE_CAP_PRIMITIVE_RESTART_FIXED_INDEX:
case PIPE_CAP_INDEP_BLEND_ENABLE:
- case PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND:
case PIPE_CAP_FS_COORD_ORIGIN_UPPER_LEFT:
case PIPE_CAP_FS_COORD_PIXEL_CENTER_INTEGER:
case PIPE_CAP_DEPTH_CLIP_DISABLE:
MAP_FORMAT_INT(R8G8B8A8) \
MAP_FORMAT_SRGB(R8G8B8A8) \
\
- /* Since we report PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND and other caps, \
- * we can rely on st/mesa to force the alpha to 1 for these, so we can \
+ /* We can rely on st/mesa to force the alpha to 1 for these, so we can \
* just use RGBA. This is needed to support RGB configs, since some apps \
* will only choose RGB (not RGBA) configs. \
*/ \
case PIPE_CAP_FRAGMENT_SHADER_DERIVATIVES:
case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
- case PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND:
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
return 1;
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
case PIPE_CAP_TEXTURE_BARRIER:
case PIPE_CAP_INVALIDATE_BUFFER:
- case PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND:
case PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS:
case PIPE_CAP_NIR_COMPACT_ARRAYS:
case PIPE_CAP_TEXTURE_MIRROR_CLAMP_TO_EDGE:
case PIPE_CAP_PRIMITIVE_RESTART_FIXED_INDEX:
case PIPE_CAP_INDEP_BLEND_ENABLE:
case PIPE_CAP_INDEP_BLEND_FUNC:
- case PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND:
case PIPE_CAP_FS_COORD_ORIGIN_UPPER_LEFT:
case PIPE_CAP_FS_COORD_PIXEL_CENTER_INTEGER:
case PIPE_CAP_DEPTH_CLIP_DISABLE:
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
return SP_MAX_TEXTURE_CUBE_LEVELS;
case PIPE_CAP_BLEND_EQUATION_SEPARATE:
- case PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND:
return 1;
case PIPE_CAP_INDEP_BLEND_ENABLE:
return 1;
case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
case PIPE_CAP_LOAD_CONSTBUF:
case PIPE_CAP_MULTISAMPLE_Z_RESOLVE:
- case PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND:
case PIPE_CAP_ALLOW_GLTHREAD_BUFFER_SUBDATA_OPT:
return 1;
PIPE_CAP_SURFACE_SAMPLE_COUNT,
PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD,
PIPE_CAP_QUERY_PIPELINE_STATISTICS_SINGLE,
- PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND,
PIPE_CAP_DEST_SURFACE_SRGB_CONTROL,
PIPE_CAP_NIR_COMPACT_ARRAYS,
PIPE_CAP_MAX_VARYINGS,
if (baseFormat == GL_RGB)
fb->_IsRGB |= (1 << i);
- if ((baseFormat == GL_RGB && ctx->st->needs_rgb_dst_alpha_override) ||
- (baseFormat == GL_LUMINANCE && !util_format_is_luminance(attFormat)) ||
- (baseFormat == GL_INTENSITY && !util_format_is_intensity(attFormat)))
+ if (ctx->st->has_indep_blend_func &&
+ ((baseFormat == GL_RGB) ||
+ (baseFormat == GL_LUMINANCE && !util_format_is_luminance(attFormat)) ||
+ (baseFormat == GL_INTENSITY && !util_format_is_intensity(attFormat))))
fb->_BlendForceAlphaToOne |= (1 << i);
if (type == GL_FLOAT && _mesa_get_format_max_bits(attFormat) > 16)
if (ctx->DrawBuffer->_BlendForceAlphaToOne) {
/* Overriding requires independent blend functions (not just enables),
- * require drivers exposing PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND to
- * also expose PIPE_CAP_INDEP_BLEND_FUNC.
+ * requiring drivers to expose PIPE_CAP_INDEP_BLEND_FUNC.
*/
assert(st->has_indep_blend_func);
screen->get_param(screen, PIPE_CAP_INDEP_BLEND_ENABLE);
st->has_indep_blend_func =
screen->get_param(screen, PIPE_CAP_INDEP_BLEND_FUNC);
- st->needs_rgb_dst_alpha_override =
- screen->get_param(screen, PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND);
st->can_dither =
screen->get_param(screen, PIPE_CAP_DITHERING);
st->lower_flatshade =
bool has_pipeline_stat;
bool has_indep_blend_enable;
bool has_indep_blend_func;
- bool needs_rgb_dst_alpha_override;
bool can_dither;
bool can_bind_const_buffer_as_vertex;
bool lower_flatshade;
spec@arb_depth_clamp@depth-clamp-range,Fail
spec@arb_direct_state_access@gettextureimage-formats,Fail
spec@arb_direct_state_access@gettextureimage-formats init-by-rendering,Fail
-spec@arb_es2_compatibility@fbo-blending-formats,Fail
-spec@arb_es2_compatibility@fbo-blending-formats@GL_RGB565,Fail
spec@arb_framebuffer_object@arb_framebuffer_object-depth-stencil-blit depth gl_depth32f_stencil8,Fail
spec@arb_framebuffer_object@arb_framebuffer_object-depth-stencil-blit depth_stencil gl_depth32f_stencil8,Fail
spec@arb_framebuffer_object@arb_framebuffer_object-depth-stencil-blit stencil gl_depth32f_stencil8,Fail
spec@ext_framebuffer_object@fbo-alphatest-formats@GL_INTENSITY8,Fail
spec@ext_framebuffer_object@fbo-alphatest-formats@GL_INTENSITY,Fail
spec@ext_framebuffer_object@fbo-blending-format-quirks,Fail
-spec@ext_framebuffer_object@fbo-blending-formats@3,Fail
spec@ext_framebuffer_object@fbo-blending-formats,Fail
spec@ext_framebuffer_object@fbo-blending-formats@GL_ALPHA4,Fail
spec@ext_framebuffer_object@fbo-blending-formats@GL_ALPHA8,Fail
spec@ext_framebuffer_object@fbo-blending-formats@GL_LUMINANCE8,Fail
spec@ext_framebuffer_object@fbo-blending-formats@GL_LUMINANCE_ALPHA,Fail
spec@ext_framebuffer_object@fbo-blending-formats@GL_LUMINANCE,Fail
-spec@ext_framebuffer_object@fbo-blending-formats@GL_R3_G3_B2,Fail
-spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB10,Fail
-spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB8,Fail
-spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB,Fail
spec@ext_framebuffer_object@fbo-blending-snorm,Fail
spec@ext_framebuffer_object@fbo-clear-formats,Fail
spec@ext_framebuffer_object@fbo-clear-formats@GL_INTENSITY4,Fail