From 3291779c21355066b9c9170cbe0b770f51803393 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 11 Jul 2021 17:27:55 -0400 Subject: [PATCH] asahi: Handle point coordinates Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/compiler/agx_compile.c | 9 ++++++--- src/gallium/drivers/asahi/agx_pipe.c | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c index 241d0e0..ef1fe82 100644 --- a/src/asahi/compiler/agx_compile.c +++ b/src/asahi/compiler/agx_compile.c @@ -1254,9 +1254,12 @@ agx_remap_varyings_fs(nir_shader *nir, struct agx_varyings *varyings, for (int c = 0; c < sz; ++c) { agx_pack(packed, VARYING, cfg) { - cfg.type = (var->data.interpolation == INTERP_MODE_FLAT) ? - AGX_VARYING_TYPE_FLAT_LAST : - AGX_VARYING_TYPE_SMOOTH; + cfg.type = (var->data.location == VARYING_SLOT_PNTC) ? + AGX_VARYING_TYPE_POINT_COORDINATES : + (var->data.interpolation == INTERP_MODE_FLAT) ? + AGX_VARYING_TYPE_FLAT_LAST : + AGX_VARYING_TYPE_SMOOTH; + cfg.components = channels; cfg.triangle_slot = cfg.point_slot = base; } diff --git a/src/gallium/drivers/asahi/agx_pipe.c b/src/gallium/drivers/asahi/agx_pipe.c index 540cd7e..bdb46b9 100644 --- a/src/gallium/drivers/asahi/agx_pipe.c +++ b/src/gallium/drivers/asahi/agx_pipe.c @@ -780,10 +780,11 @@ agx_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_TGSI_TEXCOORD: case PIPE_CAP_TGSI_FS_FACE_IS_INTEGER_SYSVAL: case PIPE_CAP_TGSI_FS_POSITION_IS_SYSVAL: - case PIPE_CAP_TGSI_FS_POINT_IS_SYSVAL: case PIPE_CAP_SEAMLESS_CUBE_MAP: case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE: return true; + case PIPE_CAP_TGSI_FS_POINT_IS_SYSVAL: + return false; case PIPE_CAP_MAX_VERTEX_ELEMENT_SRC_OFFSET: return 0xffff; -- 2.7.4