intel/brw: Make VEC() perform a single write to its destination.
This gathers a number of sources into a contiguous vector register, typically using LOAD_PAYLOAD. However, it uses MOV for a single source. Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28666>
This commit is contained in:
committed by
Marge Bot
parent
7df492923a
commit
344d4ee9f0
@@ -789,16 +789,11 @@ namespace brw {
|
||||
return inst;
|
||||
}
|
||||
|
||||
void
|
||||
fs_inst *
|
||||
VEC(const fs_reg &dst, const fs_reg *src, unsigned sources) const
|
||||
{
|
||||
/* For now, this emits a series of MOVs to ease the transition
|
||||
* to the new helper. The intention is to have this emit either
|
||||
* a single MOV or a LOAD_PAYLOAD to fully initialize dst from a
|
||||
* the list of sources.
|
||||
*/
|
||||
for (unsigned i = 0; i < sources; i++)
|
||||
MOV(offset(dst, dispatch_width(), i), src[i]);
|
||||
return sources == 1 ? MOV(dst, src[0])
|
||||
: LOAD_PAYLOAD(dst, src, sources, 0);
|
||||
}
|
||||
|
||||
fs_inst *
|
||||
|
||||
Reference in New Issue
Block a user