mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
pan/bi: Remove shift lanes invalid encodings
We were wrongly defining values that select more than one byte. The swizzle used for H01 was working fine for v9 and v10, but this generate an invalid encoding on Avalon. This fixes this by using B00 variant as we are only using 8-bit sources. Fixes:f45654af59("pan/va: Add packing routines") Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com> Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33371> (cherry picked from commit637cb0a993)
This commit is contained in:
parent
f5e6b891fa
commit
ee5713a418
4 changed files with 5 additions and 7 deletions
|
|
@ -154,7 +154,7 @@
|
|||
"description": "pan/bi: Remove shift lanes invalid encodings",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "f45654af5953d86b4b82760b51a502fb25244073",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@
|
|||
|
||||
<enum name="Lanes (8-bit)">
|
||||
<desc>Used to select the 2 bytes for shifts of 16-bit vectors</desc>
|
||||
<value>b02</value>
|
||||
<reserved/>
|
||||
<reserved/>
|
||||
<reserved/>
|
||||
<reserved/>
|
||||
|
|
@ -210,8 +210,8 @@
|
|||
<value>b33</value>
|
||||
<reserved/>
|
||||
<reserved/>
|
||||
<value>b01</value>
|
||||
<value>b23</value>
|
||||
<reserved/>
|
||||
<reserved/>
|
||||
<reserved/>
|
||||
<reserved/>
|
||||
<reserved/>
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ va_lower_constants(bi_context *ctx, bi_instr *I)
|
|||
* applying the lane select puts the desired constant (at least) in the
|
||||
* bottom byte, so we can always select the bottom byte.
|
||||
*/
|
||||
if (info.lane && I->src[s].swizzle == BI_SWIZZLE_H01) {
|
||||
if ((info.lane || info.lanes) && I->src[s].swizzle == BI_SWIZZLE_H01) {
|
||||
assert(info.size == VA_SIZE_8);
|
||||
I->src[s] = bi_byte(I->src[s], 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -349,8 +349,6 @@ static enum va_lanes_8_bit
|
|||
va_pack_shift_lanes(const bi_instr *I, enum bi_swizzle swz)
|
||||
{
|
||||
switch (swz) {
|
||||
case BI_SWIZZLE_H01:
|
||||
return VA_LANES_8_BIT_B02;
|
||||
case BI_SWIZZLE_B0000:
|
||||
return VA_LANES_8_BIT_B00;
|
||||
case BI_SWIZZLE_B1111:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue