We're going to want to look at the framebuffer for window system sRGB
handling.
---
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c  |    5 +++--
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c |    3 ++-
 src/mesa/drivers/dri/intel/intel_context.h        |    4 ++--
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c 
b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index 099668e..0744cc0 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -1051,9 +1051,10 @@ brw_update_null_renderbuffer_surface(struct brw_context 
*brw, unsigned int unit)
  */
 static void
 brw_update_renderbuffer_surface(struct brw_context *brw,
-                               struct gl_renderbuffer *rb,
+                               struct gl_framebuffer *fb,
                                unsigned int unit)
 {
+   struct gl_renderbuffer *rb = fb->_ColorDrawBuffers[unit];
    struct intel_context *intel = &brw->intel;
    struct gl_context *ctx = &intel->ctx;
    struct intel_renderbuffer *irb = intel_renderbuffer(rb);
@@ -1196,7 +1197,7 @@ brw_update_renderbuffer_surfaces(struct brw_context *brw)
    if (ctx->DrawBuffer->_NumColorDrawBuffers >= 1) {
       for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) {
         if (intel_renderbuffer(ctx->DrawBuffer->_ColorDrawBuffers[i])) {
-           intel->vtbl.update_renderbuffer_surface(brw, 
ctx->DrawBuffer->_ColorDrawBuffers[i], i);
+           intel->vtbl.update_renderbuffer_surface(brw, ctx->DrawBuffer, i);
         } else {
            intel->vtbl.update_null_renderbuffer_surface(brw, i);
         }
diff --git a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c 
b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
index 62d2be8..4c127ab 100644
--- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
@@ -457,9 +457,10 @@ gen7_update_null_renderbuffer_surface(struct brw_context 
*brw, unsigned unit)
  */
 static void
 gen7_update_renderbuffer_surface(struct brw_context *brw,
-                                struct gl_renderbuffer *rb,
+                                struct gl_framebuffer *fb,
                                 unsigned int unit)
 {
+   struct gl_renderbuffer *rb = fb->_ColorDrawBuffers[unit];
    struct intel_context *intel = &brw->intel;
    struct gl_context *ctx = &intel->ctx;
    struct intel_renderbuffer *irb = intel_renderbuffer(rb);
diff --git a/src/mesa/drivers/dri/intel/intel_context.h 
b/src/mesa/drivers/dri/intel/intel_context.h
index 29ab187..d85f1be 100644
--- a/src/mesa/drivers/dri/intel/intel_context.h
+++ b/src/mesa/drivers/dri/intel/intel_context.h
@@ -191,8 +191,8 @@ struct intel_context
        */
       void (*update_texture_surface)(struct gl_context *ctx, unsigned unit);
       void (*update_renderbuffer_surface)(struct brw_context *brw,
-                                         struct gl_renderbuffer *rb,
-                                         unsigned unit);
+                                         struct gl_framebuffer *fb,
+                                         unsigned index);
       void (*update_null_renderbuffer_surface)(struct brw_context *brw,
                                               unsigned unit);
       void (*create_constant_surface)(struct brw_context *brw,
-- 
1.7.10.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to