Module: Mesa Branch: master Commit: 42c5552b0eef9c06898d29bb3f5c985f31316250 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=42c5552b0eef9c06898d29bb3f5c985f31316250
Author: Eric Anholt <e...@anholt.net> Date: Wed Nov 2 13:51:38 2011 -0700 i965: Claim to support rendering to integer FBOs. We're missing support for the software paths still, but basic rendering is working. v2: Override RGB_INT32/UINT32 to not be renderable, since the hardware can't do it but we do allow texturing from it now. Drop the DataType override, since the _mesa_problem() isn't in that path any more. Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> (v1) --- src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 7 +++++++ src/mesa/drivers/dri/intel/intel_span.c | 7 ++++++- 2 files changed, 13 insertions(+), 1 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 3359622..0a00ab9 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -174,6 +174,13 @@ brw_render_target_supported(gl_format format) if (format == MESA_FORMAT_RGBA_FLOAT32) return true; + /* While we can texture from these formats, they're not actually supported + * for rendering. + */ + if (format == MESA_FORMAT_RGB_UINT32 || + format == MESA_FORMAT_RGB_INT32) + return false; + /* Not exactly true, as some of those formats are not renderable. * But at least we know how to translate them. */ diff --git a/src/mesa/drivers/dri/intel/intel_span.c b/src/mesa/drivers/dri/intel/intel_span.c index 191f776..478aec8 100644 --- a/src/mesa/drivers/dri/intel/intel_span.c +++ b/src/mesa/drivers/dri/intel/intel_span.c @@ -421,7 +421,12 @@ static span_init_func intel_span_init_funcs[MESA_FORMAT_COUNT] = bool intel_span_supports_format(gl_format format) { - return intel_span_init_funcs[format] != NULL; + /* Rendering to/from integer textures will be done using MapRenderbuffer, + * rather than coding up new paths through GetRow/PutRow(), so claim support + * for those formats in here for now. + */ + return (intel_span_init_funcs[format] != NULL || + _mesa_is_format_integer_color(format)); } /** _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit