brw_blorp_build_nir_shader(struct blorp_context *blorp,
const struct brw_blorp_blit_prog_key *key)
{
- const struct brw_device_info *devinfo = blorp->isl_dev->info;
+ const struct gen_device_info *devinfo = blorp->isl_dev->info;
nir_ssa_def *src_pos, *dst_pos, *color;
/* Sanity checks */
surf_convert_to_single_slice(const struct isl_device *isl_dev,
struct brw_blorp_surface_info *info)
{
- /* This only makes sense for a single level and array slice */
- assert(info->view.levels == 1 && info->view.array_len == 1);
-
/* Just bail if we have nothing to do. */
if (info->surf.dim == ISL_SURF_DIM_2D &&
info->view.base_level == 0 && info->view.base_array_layer == 0 &&
float dst_x1, float dst_y1,
GLenum filter, bool mirror_x, bool mirror_y)
{
- const struct brw_device_info *devinfo = batch->blorp->isl_dev->info;
+ const struct gen_device_info *devinfo = batch->blorp->isl_dev->info;
struct blorp_params params;
blorp_params_init(¶ms);
brw_blorp_get_blit_kernel(batch->blorp, ¶ms, &wm_prog_key);
- for (unsigned i = 0; i < 4; i++) {
- params.src.view.channel_select[i] =
- swizzle_to_scs(GET_SWZ(src_swizzle, i));
- }
+ params.src.view.swizzle = (struct isl_swizzle) {
+ .r = swizzle_to_scs(GET_SWZ(src_swizzle, 0)),
+ .g = swizzle_to_scs(GET_SWZ(src_swizzle, 1)),
+ .b = swizzle_to_scs(GET_SWZ(src_swizzle, 2)),
+ .a = swizzle_to_scs(GET_SWZ(src_swizzle, 3)),
+ };
batch->blorp->exec(batch, ¶ms);
}