mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-25 03:40:23 +01:00
intel: Enable blit glCopyTexSubImage/glBlitFramebuffer with sRGB.
Since the introduction of default-to-SARGB8 window system framebuffers, non-blorp hardware lost blit acceleration for these two paths between the window system and ARGB8888 textures. Since we shouldn't be doing any conversion anyway, just compatibility-check the linear variants of the formats. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61954 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
This commit is contained in:
parent
f43f07d588
commit
4dea6cf215
1 changed files with 11 additions and 5 deletions
|
|
@ -80,17 +80,23 @@ intel_copy_texsubimage(struct intel_context *intel,
|
|||
perf_debug("no support for array textures\n");
|
||||
}
|
||||
|
||||
copy_supported = intelImage->base.Base.TexFormat == intel_rb_format(irb);
|
||||
/* glCopyTexImage (and the glBlitFramebuffer() path that reuses this)
|
||||
* doesn't do any sRGB conversions.
|
||||
*/
|
||||
gl_format src_format = _mesa_get_srgb_format_linear(intel_rb_format(irb));
|
||||
gl_format dst_format = _mesa_get_srgb_format_linear(intelImage->base.Base.TexFormat);
|
||||
|
||||
copy_supported = src_format == dst_format;
|
||||
|
||||
/* Converting ARGB8888 to XRGB8888 is trivial: ignore the alpha bits */
|
||||
if (intel_rb_format(irb) == MESA_FORMAT_ARGB8888 &&
|
||||
intelImage->base.Base.TexFormat == MESA_FORMAT_XRGB8888) {
|
||||
if (src_format == MESA_FORMAT_ARGB8888 &&
|
||||
dst_format == MESA_FORMAT_XRGB8888) {
|
||||
copy_supported = true;
|
||||
}
|
||||
|
||||
/* Converting XRGB8888 to ARGB8888 requires setting the alpha bits to 1.0 */
|
||||
if (intel_rb_format(irb) == MESA_FORMAT_XRGB8888 &&
|
||||
intelImage->base.Base.TexFormat == MESA_FORMAT_ARGB8888) {
|
||||
if (src_format == MESA_FORMAT_XRGB8888 &&
|
||||
dst_format == MESA_FORMAT_ARGB8888) {
|
||||
copy_supported_with_alpha_override = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue