intel/blorp: Add support for clearing R9G9B9E5 surfaces
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 30 Aug 2016 23:32:51 +0000 (16:32 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 13 Sep 2016 02:42:57 +0000 (19:42 -0700)
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/intel/blorp/blorp_clear.c

index 2213ada2c6cae7bafaa24c80bc782f59fb512648..384a4cf98776d2ddb7178a449cfdc3042fa0f5e3 100644 (file)
@@ -23,6 +23,9 @@
 
 #include "util/ralloc.h"
 
+#include "main/macros.h" /* Needed for MAX3 and MAX2 for format_rgb9e5 */
+#include "util/format_rgb9e5.h"
+
 #include "blorp_priv.h"
 #include "brw_defines.h"
 
@@ -252,6 +255,11 @@ blorp_clear(struct blorp_batch *batch,
    params.x1 = x1;
    params.y1 = y1;
 
+   if (format == ISL_FORMAT_R9G9B9E5_SHAREDEXP) {
+      clear_color.u32[0] = float3_to_rgb9e5(clear_color.f32);
+      format = ISL_FORMAT_R32_UINT;
+   }
+
    memcpy(&params.wm_inputs, clear_color.f32, sizeof(float) * 4);
 
    bool use_simd16_replicated_data = true;