mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2025-03-07 09:38:39 +00:00
ir3: update info about applicability of saturation modifier
On a6xx saturation doesn't work on cat4 and on bary.f Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9751>
This commit is contained in:
parent
5942a0f1ac
commit
208250b376
@ -1042,12 +1042,14 @@ static inline bool instr_sat(instr_t *instr)
|
||||
|
||||
static inline bool is_sat_compatible(opc_t opc)
|
||||
{
|
||||
/* TODO probably opc_cat==4 is ok too */
|
||||
/* On a6xx saturation doesn't work on cat4 */
|
||||
if (opc_cat(opc) != 2 && opc_cat(opc) != 3)
|
||||
return false;
|
||||
|
||||
switch (opc) {
|
||||
/* On a3xx and a6xx saturation doesn't work on bary.f */
|
||||
case OPC_BARY_F:
|
||||
/* On a6xx saturation doesn't work on sel.* */
|
||||
case OPC_SEL_B16:
|
||||
case OPC_SEL_B32:
|
||||
case OPC_SEL_S16:
|
||||
|
@ -429,10 +429,6 @@ emit_alu(struct ir3_context *ctx, nir_alu_instr *alu)
|
||||
* (sat) bit, we can just fold the (sat) flag back to the
|
||||
* src instruction and create a mov. This is easier for cp
|
||||
* to eliminate.
|
||||
*
|
||||
* NOTE: a3xx definitely seen not working with flat bary.f. Same test
|
||||
* uses ldlv on a4xx+, so not definitive. Seems rare enough to apply
|
||||
* everywhere.
|
||||
*/
|
||||
if (alu->src[0].src.is_ssa &&
|
||||
is_sat_compatible(src[0]->opc) &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user