diff --git a/src/intel/compiler/brw_eu_validate.c b/src/intel/compiler/brw_eu_validate.c index d35b3085a11..96b2c116622 100644 --- a/src/intel/compiler/brw_eu_validate.c +++ b/src/intel/compiler/brw_eu_validate.c @@ -923,15 +923,6 @@ general_restrictions_on_region_parameters(const struct brw_isa_info *isa, ERROR_IF(inst->exec_size < width, "ExecSize must be greater than or equal " "to Width"); - /* If ExecSize = Width and HorzStride ≠ 0, - * VertStride must be set to Width * HorzStride. - */ - if (inst->exec_size == width && hstride != 0) { - ERROR_IF(vstride != width * hstride, - "If ExecSize = Width and HorzStride ≠ 0, " - "VertStride must be set to Width * HorzStride"); - } - /* If Width = 1, HorzStride must be 0 regardless of the values of * ExecSize and VertStride. */ @@ -941,6 +932,18 @@ general_restrictions_on_region_parameters(const struct brw_isa_info *isa, "of the values of ExecSize and VertStride"); } + if (vstride == STRIDE(BRW_VERTICAL_STRIDE_ONE_DIMENSIONAL)) + continue; + + /* If ExecSize = Width and HorzStride ≠ 0, + * VertStride must be set to Width * HorzStride. + */ + if (inst->exec_size == width && hstride != 0) { + ERROR_IF(vstride != width * hstride, + "If ExecSize = Width and HorzStride ≠ 0, " + "VertStride must be set to Width * HorzStride"); + } + /* If ExecSize = Width = 1, both VertStride and HorzStride must be 0. */ if (inst->exec_size == 1 && width == 1) { ERROR_IF(vstride != 0 || hstride != 0,