agx: Respect component in frag load_input
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Thu, 9 Feb 2023 20:05:40 +0000 (15:05 -0500)
committerMarge Bot <emma+marge@anholt.net>
Mon, 13 Feb 2023 10:48:13 +0000 (10:48 +0000)
Fixes fails in dEQP-GLES31.functional.separate_shader.random.*.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21266>

src/asahi/compiler/agx_compile.c

index 1f9c5c4..bf261a4 100644 (file)
@@ -358,9 +358,9 @@ agx_emit_load_vary_flat(agx_builder *b, agx_index dest,
    /* Get all coefficient registers up front. This ensures the driver emits a
     * single vectorized binding.
     */
-   agx_index cf =
-      agx_get_cf(b->shader, false, false,
-                 sem.location + nir_src_as_uint(*offset), 0, components);
+   agx_index cf = agx_get_cf(b->shader, false, false,
+                             sem.location + nir_src_as_uint(*offset),
+                             nir_intrinsic_component(instr), components);
    agx_index dests[4] = {agx_null()};
 
    for (unsigned i = 0; i < components; ++i) {