summaryrefslogtreecommitdiffstats
path: root/src/intel/blorp
diff options
context:
space:
mode:
authorTopi Pohjolainen <[email protected]>2016-08-26 18:44:18 +0300
committerTopi Pohjolainen <[email protected]>2016-09-12 11:48:29 +0300
commita1c7de09dc2b00cc990903ebee52228315e5d4e5 (patch)
tree5aa435c94653b8efa7eb9e0ffa08db2b5064889c /src/intel/blorp
parent514afdce95e1c75a754412203425a8ac1282cd2d (diff)
intel/blorp: Add plumbing for setting color clear layer count
Signed-off-by: Topi Pohjolainen <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel/blorp')
-rw-r--r--src/intel/blorp/blorp.h6
-rw-r--r--src/intel/blorp/blorp_clear.c16
2 files changed, 12 insertions, 10 deletions
diff --git a/src/intel/blorp/blorp.h b/src/intel/blorp/blorp.h
index 12f18332883..238e7c786ba 100644
--- a/src/intel/blorp/blorp.h
+++ b/src/intel/blorp/blorp.h
@@ -110,14 +110,14 @@ blorp_blit(struct blorp_batch *batch,
void
blorp_fast_clear(struct blorp_batch *batch,
- const struct blorp_surf *surf,
- uint32_t level, uint32_t layer, enum isl_format format,
+ const struct blorp_surf *surf, enum isl_format format,
+ uint32_t level, uint32_t start_layer, uint32_t num_layers,
uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1);
void
blorp_clear(struct blorp_batch *batch,
const struct blorp_surf *surf,
- uint32_t level, uint32_t layer,
+ uint32_t level, uint32_t start_layer, uint32_t num_layers,
uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1,
enum isl_format format, union isl_color_value clear_color,
bool color_write_disable[4]);
diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c
index 831c8ed0a6e..cba48234f96 100644
--- a/src/intel/blorp/blorp_clear.c
+++ b/src/intel/blorp/blorp_clear.c
@@ -208,12 +208,13 @@ get_fast_clear_rect(const struct isl_device *dev,
void
blorp_fast_clear(struct blorp_batch *batch,
- const struct blorp_surf *surf,
- uint32_t level, uint32_t layer, enum isl_format format,
+ const struct blorp_surf *surf, enum isl_format format,
+ uint32_t level, uint32_t start_layer, uint32_t num_layers,
uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1)
{
struct blorp_params params;
blorp_params_init(&params);
+ params.num_layers = num_layers;
params.x0 = x0;
params.y0 = y0;
@@ -228,8 +229,8 @@ blorp_fast_clear(struct blorp_batch *batch,
blorp_params_get_clear_kernel(batch->blorp, &params, true);
- brw_blorp_surface_info_init(batch->blorp, &params.dst, surf, level, layer,
- format, true);
+ brw_blorp_surface_info_init(batch->blorp, &params.dst, surf, level,
+ start_layer, format, true);
batch->blorp->exec(batch, &params);
}
@@ -238,13 +239,14 @@ blorp_fast_clear(struct blorp_batch *batch,
void
blorp_clear(struct blorp_batch *batch,
const struct blorp_surf *surf,
- uint32_t level, uint32_t layer,
+ uint32_t level, uint32_t start_layer, uint32_t num_layers,
uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1,
enum isl_format format, union isl_color_value clear_color,
bool color_write_disable[4])
{
struct blorp_params params;
blorp_params_init(&params);
+ params.num_layers = num_layers;
params.x0 = x0;
params.y0 = y0;
@@ -276,8 +278,8 @@ blorp_clear(struct blorp_batch *batch,
blorp_params_get_clear_kernel(batch->blorp, &params,
use_simd16_replicated_data);
- brw_blorp_surface_info_init(batch->blorp, &params.dst, surf, level, layer,
- format, true);
+ brw_blorp_surface_info_init(batch->blorp, &params.dst, surf, level,
+ start_layer, format, true);
batch->blorp->exec(batch, &params);
}