brw/build: Add scalar_group() helper

Some uses of the old pattern still exist. The use in brw_fs_nir.cpp is
deleted by commits !29884. The use in brw_lower_logical_sends.cpp seems
different, so I decided to keep it.

The next commit wants to use this.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32041>
This commit is contained in:
Ian Romanick 2024-10-09 15:19:06 -07:00 committed by Marge Bot
parent 5dfea87623
commit 2a57568ebd
2 changed files with 11 additions and 2 deletions

View file

@ -151,6 +151,15 @@ namespace brw {
return bld;
}
/**
* Construct a builder for SIMD8-as-scalar
*/
fs_builder
scalar_group() const
{
return exec_all().group(8 * reg_unit(shader->devinfo), 0);
}
/**
* Construct a builder with the given debug annotation info.
*/

View file

@ -6027,7 +6027,7 @@ fs_nir_emit_intrinsic(nir_to_brw_state &ntb,
/* Since the image size is always uniform, we can just emit a SIMD8
* query instruction and splat the result out.
*/
const fs_builder ubld = bld.exec_all().group(8 * reg_unit(devinfo), 0);
const fs_builder ubld = bld.scalar_group();
brw_reg tmp = ubld.vgrf(BRW_TYPE_UD, 4);
fs_inst *inst = ubld.emit(SHADER_OPCODE_IMAGE_SIZE_LOGICAL,
@ -6507,7 +6507,7 @@ fs_nir_emit_intrinsic(nir_to_brw_state &ntb,
* for SURFTYPE_BUFFER, we can just use the SIMD8 variant regardless of
* the dispatch width.
*/
const fs_builder ubld = bld.exec_all().group(8 * reg_unit(devinfo), 0);
const fs_builder ubld = bld.scalar_group();
brw_reg ret_payload = ubld.vgrf(BRW_TYPE_UD, 4);
/* Set LOD = 0 */