summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTopi Pohjolainen <topi.pohjolainen@intel.com>2018-04-03 10:23:13 +0300
committerTopi Pohjolainen <topi.pohjolainen@intel.com>2018-04-03 10:41:20 +0300
commit51449003200a2fa8414191a79f9a28c63b7b38dc (patch)
tree4e5101302e5a0d49a4a1ba258ecf7bca3f2a05b7
parentccbe5ada0de8ff0627ef4e5f4b638385c14aea10 (diff)
blorp: dump clear colorsicl_fcc_2
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
-rw-r--r--src/mesa/drivers/dri/i965/brw_blorp.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c
index 6faffae1a9..2ac9257d2d 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp.c
+++ b/src/mesa/drivers/dri/i965/brw_blorp.c
@@ -39,6 +39,8 @@
#include "intel_buffer_objects.h"
#include "intel_fbo.h"
#include "common/gen_debug.h"
+#include "intel_batchbuffer.h"
+
#define FILE_DEBUG_FLAG DEBUG_BLORP
@@ -1164,6 +1166,41 @@ set_write_disables(const struct intel_renderbuffer *irb,
}
static void
+dump_clear_color(struct brw_context *brw,
+ const struct intel_renderbuffer *irb)
+{
+ fprintf(stderr, "clear: %u %u:%u\n",
+ irb->mt->mcs_buf->clear_color_offset,
+ irb->mt->mcs_buf->offset,
+ irb->mt->mcs_buf->size);
+
+ intel_batchbuffer_flush(brw);
+
+ const unsigned char *clear_color_start =
+ brw_bo_map(brw, irb->mt->mcs_buf->bo, 0);
+
+ clear_color_start += irb->mt->mcs_buf->clear_color_offset;
+
+ fprintf(stderr, "orig: %g:%g:%g:%g 0x%x 0x%x 0x%x 0x%x\n",
+ ((const float *)clear_color_start)[0],
+ ((const float *)clear_color_start)[1],
+ ((const float *)clear_color_start)[2],
+ ((const float *)clear_color_start)[3],
+ ((const unsigned *)clear_color_start)[0],
+ ((const unsigned *)clear_color_start)[1],
+ ((const unsigned *)clear_color_start)[2],
+ ((const unsigned *)clear_color_start)[3]);
+
+ fprintf(stderr, "conv: 0x%x 0x%x 0x%x 0x%x\n",
+ ((const unsigned *)clear_color_start)[4],
+ ((const unsigned *)clear_color_start)[5],
+ ((const unsigned *)clear_color_start)[6],
+ ((const unsigned *)clear_color_start)[7]);
+
+ brw_bo_unmap(irb->mt->mcs_buf->bo);
+}
+
+static void
do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
struct gl_renderbuffer *rb, unsigned buf,
bool partial_clear, bool encode_srgb)
@@ -1273,6 +1310,8 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
*/
brw_emit_end_of_pipe_sync(brw, PIPE_CONTROL_RENDER_TARGET_FLUSH);
+ dump_clear_color(brw, irb);
+
struct blorp_batch batch;
blorp_batch_init(&brw->blorp, &batch, brw, 0);
blorp_fast_clear(&batch, &surf, isl_format,
@@ -1282,6 +1321,8 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
brw_emit_end_of_pipe_sync(brw, PIPE_CONTROL_RENDER_TARGET_FLUSH);
+ dump_clear_color(brw, irb);
+
/* Now that the fast clear has occurred, put the buffer in
* INTEL_FAST_CLEAR_STATE_CLEAR so that we won't waste time doing
* redundant clears.