Fair enough on those magic numbers. It would be nice to understand them better though.

On 28.04.2017 17:56, Marek Olšák wrote:
[snip]
@@ -1721,20 +1893,26 @@ static void *si_create_shader_selector(struct
pipe_context *ctx,
                                break;
                        case TGSI_SEMANTIC_CLIPVERTEX: /* ignore these */
                        case TGSI_SEMANTIC_EDGEFLAG:
                                break;
                        default:
                                sel->outputs_written2 |=
                                        1u <<
si_shader_io_get_unique_index2(name, index);
                        }
                }
                sel->esgs_itemsize = util_last_bit64(sel->outputs_written)
* 16;
+
+               /* For the ESGS ring in LDS, add 1 dword to reduce LDS
bank
+                * conflicts, i.e. each vertex will start at a different
bank.
+                */
+               if (sctx->b.chip_class >= GFX9)
+                       sel->esgs_itemsize += 4;


Could this not be achieved by some form of rounding instead?

What do you mean?

Actually, I think I was mistaken. There are 4 banks, and they're interleaved, right? So the idea is to have esgs_itemsize not be a multiple of 16 bytes, but a multiple of 16 bytes + 4 bytes. It makes sense to me now.

This patch is also

Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>


--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to