diff options
author | Chad Versace <chad.versace@linux.intel.com> | 2012-08-09 09:15:36 -0700 |
---|---|---|
committer | Chad Versace <chad.versace@linux.intel.com> | 2012-08-14 16:19:25 -0700 |
commit | 38b748ce29a6415558bbe4886589134e3db047c8 (patch) | |
tree | 34457148e585c24de95203c1c7f842c573a15787 /src/mesa/drivers/dri/intel/intel_context.c | |
parent | cde2b7e55d88915d0c139ab5cdd3f204936958dd (diff) |
intel: Refactor intel_downsample_for_dri2_flush
Move it from intel_screen.c to intel_context.c. Redeclare as non-static.
A future commit will use it in multiple files.
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Diffstat (limited to 'src/mesa/drivers/dri/intel/intel_context.c')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_context.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c index a39462bbb56..c37d89d1150 100644 --- a/src/mesa/drivers/dri/intel/intel_context.c +++ b/src/mesa/drivers/dri/intel/intel_context.c @@ -241,6 +241,36 @@ intelGetString(struct gl_context * ctx, GLenum name) } } +void +intel_downsample_for_dri2_flush(struct intel_context *intel, + __DRIdrawable *drawable) +{ + if (intel->gen < 6) { + /* MSAA is not supported, so don't waste time checking for + * a multisample buffer. + */ + return; + } + + struct gl_framebuffer *fb = drawable->driverPrivate; + struct intel_renderbuffer *rb; + + /* Usually, only the back buffer will need to be downsampled. However, + * the front buffer will also need it if the user has rendered into it. + */ + static const gl_buffer_index buffers[2] = { + BUFFER_BACK_LEFT, + BUFFER_FRONT_LEFT, + }; + + for (int i = 0; i < 2; ++i) { + rb = intel_get_renderbuffer(fb, buffers[i]); + if (rb == NULL || rb->mt == NULL) + continue; + intel_miptree_downsample(intel, rb->mt); + } +} + static void intel_flush_front(struct gl_context *ctx) { |