freedreno/a5xx: use vertex_id_zero_base
Cmdstream traces from blob make it clear that the blob driver dev's *think* a5xx has a real (non-zero-based) vtxid. But reality claims differently. Fixes ./bin/gl-3.2-basevertex-vertexid and probably others. This means draw-indirect is going to need some gymnastics to copy base-vertex into uniform. (a4xx probably needs that too.) Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
@@ -341,7 +341,7 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
||||
|
||||
pos_regid = ir3_find_output_regid(s[VS].v, VARYING_SLOT_POS);
|
||||
psize_regid = ir3_find_output_regid(s[VS].v, VARYING_SLOT_PSIZ);
|
||||
vertex_regid = ir3_find_sysval_regid(s[VS].v, SYSTEM_VALUE_VERTEX_ID);
|
||||
vertex_regid = ir3_find_sysval_regid(s[VS].v, SYSTEM_VALUE_VERTEX_ID_ZERO_BASE);
|
||||
instance_regid = ir3_find_sysval_regid(s[VS].v, SYSTEM_VALUE_INSTANCE_ID);
|
||||
|
||||
if (s[FS].v->color0_mrt) {
|
||||
|
||||
@@ -52,23 +52,6 @@ static const nir_shader_compiler_options options = {
|
||||
.lower_extract_word = true,
|
||||
};
|
||||
|
||||
static const nir_shader_compiler_options options_5xx = {
|
||||
.lower_fpow = true,
|
||||
.lower_fsat = true,
|
||||
.lower_scmp = true,
|
||||
.lower_flrp32 = true,
|
||||
.lower_flrp64 = true,
|
||||
.lower_ffract = true,
|
||||
.lower_fmod32 = true,
|
||||
.lower_fmod64 = true,
|
||||
.lower_fdiv = true,
|
||||
.fuse_ffma = true,
|
||||
.native_integers = true,
|
||||
.vertex_id_zero_based = false,
|
||||
.lower_extract_byte = true,
|
||||
.lower_extract_word = true,
|
||||
};
|
||||
|
||||
struct nir_shader *
|
||||
ir3_tgsi_to_nir(const struct tgsi_token *tokens)
|
||||
{
|
||||
@@ -78,8 +61,6 @@ ir3_tgsi_to_nir(const struct tgsi_token *tokens)
|
||||
const nir_shader_compiler_options *
|
||||
ir3_get_compiler_options(struct ir3_compiler *compiler)
|
||||
{
|
||||
if (compiler->gpu_id >= 500)
|
||||
return &options_5xx;
|
||||
return &options;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user