intel/blorp: Add a swizzle parameter to blorp_clear

While we're here, we also re-arrange the parameters to better match the
parameter order of blorp_blit.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
Jason Ekstrand
2016-08-30 18:01:27 -07:00
parent ea1399aba0
commit c70be1ead5
3 changed files with 9 additions and 4 deletions

View File

@@ -127,9 +127,10 @@ blorp_fast_clear(struct blorp_batch *batch,
void void
blorp_clear(struct blorp_batch *batch, blorp_clear(struct blorp_batch *batch,
const struct blorp_surf *surf, const struct blorp_surf *surf,
enum isl_format format, struct isl_swizzle swizzle,
uint32_t level, uint32_t start_layer, uint32_t num_layers, uint32_t level, uint32_t start_layer, uint32_t num_layers,
uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1,
enum isl_format format, union isl_color_value clear_color, union isl_color_value clear_color,
const bool color_write_disable[4]); const bool color_write_disable[4]);
void void

View File

@@ -242,9 +242,10 @@ blorp_fast_clear(struct blorp_batch *batch,
void void
blorp_clear(struct blorp_batch *batch, blorp_clear(struct blorp_batch *batch,
const struct blorp_surf *surf, const struct blorp_surf *surf,
enum isl_format format, struct isl_swizzle swizzle,
uint32_t level, uint32_t start_layer, uint32_t num_layers, uint32_t level, uint32_t start_layer, uint32_t num_layers,
uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1,
enum isl_format format, union isl_color_value clear_color, union isl_color_value clear_color,
const bool color_write_disable[4]) const bool color_write_disable[4])
{ {
struct blorp_params params; struct blorp_params params;
@@ -290,6 +291,7 @@ blorp_clear(struct blorp_batch *batch,
while (num_layers > 0) { while (num_layers > 0) {
brw_blorp_surface_info_init(batch->blorp, &params.dst, surf, level, brw_blorp_surface_info_init(batch->blorp, &params.dst, surf, level,
start_layer, format, true); start_layer, format, true);
params.dst.view.swizzle = swizzle;
/* We may be restricted on the number of layers we can bind at any one /* We may be restricted on the number of layers we can bind at any one
* time. In particular, Sandy Bridge has a maximum number of layers of * time. In particular, Sandy Bridge has a maximum number of layers of

View File

@@ -781,9 +781,11 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
struct blorp_batch batch; struct blorp_batch batch;
blorp_batch_init(&brw->blorp, &batch, brw); blorp_batch_init(&brw->blorp, &batch, brw);
blorp_clear(&batch, &surf, level, irb->mt_layer, num_layers, blorp_clear(&batch, &surf,
x0, y0, x1, y1,
(enum isl_format)brw->render_target_format[format], (enum isl_format)brw->render_target_format[format],
ISL_SWIZZLE_IDENTITY,
level, irb->mt_layer, num_layers,
x0, y0, x1, y1,
clear_color, color_write_disable); clear_color, color_write_disable);
blorp_batch_finish(&batch); blorp_batch_finish(&batch);