intel: Add the context to the render_target_supported() vtbl method.
authorEric Anholt <eric@anholt.net>
Tue, 15 Nov 2011 19:43:40 +0000 (11:43 -0800)
committerEric Anholt <eric@anholt.net>
Tue, 22 Nov 2011 21:58:38 +0000 (13:58 -0800)
We're going to want to provide different answers per chipset
generation.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i915/i830_vtbl.c
src/mesa/drivers/dri/i915/i915_vtbl.c
src/mesa/drivers/dri/i965/brw_wm.h
src/mesa/drivers/dri/i965/brw_wm_surface_state.c
src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
src/mesa/drivers/dri/intel/intel_context.h
src/mesa/drivers/dri/intel/intel_fbo.c

index d29f9799a8622ffaaa9751924d26551cb5f68431..e79dd7556858ca6322e518e7411e11d181124ba1 100644 (file)
@@ -593,7 +593,7 @@ static uint32_t i830_render_target_format_for_mesa_format[MESA_FORMAT_COUNT] =
 };
 
 static bool
-i830_render_target_supported(gl_format format)
+i830_render_target_supported(struct intel_context *intel, gl_format format)
 {
    if (format == MESA_FORMAT_S8_Z24 ||
        format == MESA_FORMAT_X8_Z24 ||
index 072a692767adddfbbef19b3ebda347aabaf4ff15..e21eb662ff47d5dfe61770437eca4ddea32a4e27 100644 (file)
@@ -556,7 +556,7 @@ static uint32_t i915_render_target_format_for_mesa_format[MESA_FORMAT_COUNT] =
 };
 
 static bool
-i915_render_target_supported(gl_format format)
+i915_render_target_supported(struct intel_context *intel, gl_format format)
 {
    if (format == MESA_FORMAT_S8_Z24 ||
        format == MESA_FORMAT_X8_Z24 ||
index 056934a274b4937e7f4cd723d4821b9017ed9be7..596759269ad110b77ec346e9632b7464cc9e7b98 100644 (file)
@@ -485,7 +485,7 @@ struct gl_shader *brw_new_shader(struct gl_context *ctx, GLuint name, GLuint typ
 struct gl_shader_program *brw_new_shader_program(struct gl_context *ctx, GLuint name);
 
 bool brw_color_buffer_write_enabled(struct brw_context *brw);
-bool brw_render_target_supported(gl_format format);
+bool brw_render_target_supported(struct intel_context *intel, gl_format format);
 void brw_wm_payload_setup(struct brw_context *brw,
                          struct brw_wm_compile *c);
 bool do_wm_prog(struct brw_context *brw,
index be880c81c118944bea04be94e2da760390410bfd..828d60994b13a68c9ba3cdce9da5b568fb540d75 100644 (file)
@@ -361,7 +361,7 @@ brw_format_for_mesa_format(gl_format mesa_format)
 }
 
 bool
-brw_render_target_supported(gl_format format)
+brw_render_target_supported(struct intel_context *intel, gl_format format)
 {
    /* These are not color render targets like the table holds, but we
     * ask the question for FBO completeness.
@@ -690,8 +690,9 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
         format = BRW_SURFACEFORMAT_B8G8R8A8_UNORM;
       break;
    default:
-      assert(brw_render_target_supported(irb->Base.Format));
+      assert(brw_render_target_supported(intel, irb->Base.Format));
       format = brw_format_for_mesa_format(irb->Base.Format);
+      break;
    }
 
    surf[0] = (BRW_SURFACE_2D << BRW_SURFACE_TYPE_SHIFT |
index e1c3910af9501a760cfb0a25f7cb98af2a7f42eb..7084bdc3ef3b6734cc14c14aa1d74ff948debf0b 100644 (file)
@@ -228,7 +228,7 @@ gen7_update_renderbuffer_surface(struct brw_context *brw,
         surf->ss0.surface_format = BRW_SURFACEFORMAT_B8G8R8A8_UNORM;
       break;
    default:
-      assert(brw_render_target_supported(irb->Base.Format));
+      assert(brw_render_target_supported(intel, irb->Base.Format));
       surf->ss0.surface_format = brw_format_for_mesa_format(irb->Base.Format);
    }
 
index efaf721ae828dcf831d3afd2c46ec19dc8445a3e..a61ac4c164fbc64ce02561ec517f3c3b6c515db4 100644 (file)
@@ -151,7 +151,8 @@ struct intel_context
       void (*assert_not_dirty) (struct intel_context *intel);
 
       void (*debug_batch)(struct intel_context *intel);
-      bool (*render_target_supported)(gl_format format);
+      bool (*render_target_supported)(struct intel_context *intel,
+                                     gl_format format);
 
       /** Can HiZ be enabled on a depthbuffer of the given format? */
       bool (*is_hiz_depth_format)(struct intel_context *intel,
index dc3e5dda14f1ebb0fd9e183d425c1e21e3082a80..c2e9b9be5d98e7b0e06dfe2d5d0f5dbe9aee53e0 100644 (file)
@@ -1363,7 +1363,7 @@ intel_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb)
       }
 
       if (!intel_span_supports_format(irb->Base.Format) ||
-         !intel->vtbl.render_target_supported(irb->Base.Format)) {
+         !intel->vtbl.render_target_supported(intel, irb->Base.Format)) {
         DBG("Unsupported texture/renderbuffer format attached: %s\n",
             _mesa_get_format_name(irb->Base.Format));
         fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;