Once these are mapped to R/RG, they would show up as renderable thanks
to the default logic above, even though we don't have fragment shader
output swizzling for them.

NOTE: This is a candidate for the 8.0 branch.
---
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c |   32 ++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 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 ef270e7..0296f25 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -536,6 +536,38 @@ brw_init_surface_formats(struct brw_context *brw)
       }
    }
 
+   /* These formats are not actually supported as render targets, because we 
use
+    * a mismatched BRW_SURFACEFORMAT, and we would need to swizzle the fragment
+    * shader output colors to make up for that.
+    */
+   brw->format_supported_as_render_target[MESA_FORMAT_ALPHA_UINT32] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_ALPHA_INT32] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_ALPHA_UINT16] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_ALPHA_INT16] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_ALPHA_UINT8] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_ALPHA_INT8] = false;
+
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_UINT32] = 
false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_INT32] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_UINT16] = 
false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_INT16] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_UINT8] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_INT8] = false;
+
+   brw->format_supported_as_render_target[MESA_FORMAT_INTENSITY_UINT32] = 
false;
+   brw->format_supported_as_render_target[MESA_FORMAT_INTENSITY_INT32] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_INTENSITY_UINT16] = 
false;
+   brw->format_supported_as_render_target[MESA_FORMAT_INTENSITY_INT16] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_INTENSITY_UINT8] = false;
+   brw->format_supported_as_render_target[MESA_FORMAT_INTENSITY_INT8] = false;
+
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_ALPHA_UINT32] 
= false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_ALPHA_INT32] = 
false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_ALPHA_UINT16] 
= false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_ALPHA_INT16] = 
false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_ALPHA_UINT8] = 
false;
+   brw->format_supported_as_render_target[MESA_FORMAT_LUMINANCE_ALPHA_INT8] = 
false;
+
    /* We will check this table for FBO completeness, but the surface format
     * table above only covered color rendering.
     */
-- 
1.7.7.3

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

Reply via email to