Mesa (master): st/dri: Perform MSAA downsampling for __DRI2_THROTTLE_COPYSUBBUFFER
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sat Oct 5 13:20:01 UTC 2019
Module: Mesa
Branch: master
Commit: 72beda4fb451d35fdda60f015f370c24af114ccf
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=72beda4fb451d35fdda60f015f370c24af114ccf
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Thu Oct 3 12:11:22 2019 -0400
st/dri: Perform MSAA downsampling for __DRI2_THROTTLE_COPYSUBBUFFER
glXCopySubBufferMESA copies data from the back buffer to the front,
so it needs to perform a MSAA downsampling operation just like
glXSwapBuffers would.
Currently, the CopySubBuffer implementations supply a throttle reason
of __DRI2_THROTTLE_SWAPBUFFERS, so they hit this path and work today.
But we'd like to avoid swapbuffer throttling in this case, so the next
patch will change that reason.
Tested-by: Michel Dänzer <mdaenzer at redhat.com> # DRI3 only
Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>
---
src/gallium/state_trackers/dri/dri_drawable.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/gallium/state_trackers/dri/dri_drawable.c b/src/gallium/state_trackers/dri/dri_drawable.c
index b99d1e9de51..8f5055407cd 100644
--- a/src/gallium/state_trackers/dri/dri_drawable.c
+++ b/src/gallium/state_trackers/dri/dri_drawable.c
@@ -511,13 +511,15 @@ dri_flush(__DRIcontext *cPriv,
struct pipe_context *pipe = st->pipe;
if (drawable->stvis.samples > 1 &&
- reason == __DRI2_THROTTLE_SWAPBUFFER) {
+ (reason == __DRI2_THROTTLE_SWAPBUFFER ||
+ reason == __DRI2_THROTTLE_COPYSUBBUFFER)) {
/* Resolve the MSAA back buffer. */
dri_pipe_blit(st->pipe,
drawable->textures[ST_ATTACHMENT_BACK_LEFT],
drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT]);
- if (drawable->msaa_textures[ST_ATTACHMENT_FRONT_LEFT] &&
+ if (reason == __DRI2_THROTTLE_SWAPBUFFER &&
+ drawable->msaa_textures[ST_ATTACHMENT_FRONT_LEFT] &&
drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT]) {
swap_msaa_buffers = true;
}
More information about the mesa-commit
mailing list