diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 85d3845a69d..09300ff3b66 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -1951,9 +1951,11 @@ static void* r300_create_vs_state(struct pipe_context* pipe, static const struct nir_to_tgsi_options hwtcl_r300_options = { .lower_cmp = true, .lower_fabs = true, + .ubo_vec4_max = 0x00ff, }; static const struct nir_to_tgsi_options hwtcl_r500_options = { .lower_cmp = true, + .ubo_vec4_max = 0x00ff, }; const struct nir_to_tgsi_options *ntt_options; if (r300->screen->caps.has_tcl) { diff --git a/src/gallium/drivers/r300/r300_tgsi_to_rc.c b/src/gallium/drivers/r300/r300_tgsi_to_rc.c index 3068f78125e..026f52dd0dc 100644 --- a/src/gallium/drivers/r300/r300_tgsi_to_rc.c +++ b/src/gallium/drivers/r300/r300_tgsi_to_rc.c @@ -177,6 +177,8 @@ static void transform_srcreg( { dst->File = translate_register_file(src->Register.File); dst->Index = translate_register_index(ttr, src->Register.File, src->Register.Index); + /* Negative offsets to relative addressing should have been lowered in NIR */ + assert(dst->Index >= 0); dst->RelAddr = src->Register.Indirect; dst->Swizzle = tgsi_util_get_full_src_register_swizzle(src, 0); dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 1) << 3;