X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fllvmpipe%2Flp_state_setup.c;h=ab38357872d3990c0ac6db03137d98683022a19b;hb=1b749dc34f8d83cf3dfa863279b1fe2b356d34b2;hp=a9d9f4f466591eef7b74dcb0bd8301a5757aab4b;hpb=0cbb49aff59f7a671d153d9baa70aa78b07da538;p=mesa.git diff --git a/src/gallium/drivers/llvmpipe/lp_state_setup.c b/src/gallium/drivers/llvmpipe/lp_state_setup.c index a9d9f4f4665..ab38357872d 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_setup.c +++ b/src/gallium/drivers/llvmpipe/lp_state_setup.c @@ -837,7 +837,13 @@ cull_setup_variants(struct llvmpipe_context *lp) llvmpipe_finish(pipe, __FUNCTION__); for (i = 0; i < LP_MAX_SETUP_VARIANTS / 4; i++) { - struct lp_setup_variant_list_item *item = last_elem(&lp->setup_variants_list); + struct lp_setup_variant_list_item *item; + if (is_empty_list(&lp->setup_variants_list)) { + break; + } + item = last_elem(&lp->setup_variants_list); + assert(item); + assert(item->base); remove_setup_variant(lp, item->base); } } @@ -874,10 +880,11 @@ llvmpipe_update_setup(struct llvmpipe_context *lp) } variant = generate_setup_variant(lp->gallivm, key, lp); - insert_at_head(&lp->setup_variants_list, &variant->list_item_global); - lp->nr_setup_variants++; - - llvmpipe_variant_count++; + if (variant) { + insert_at_head(&lp->setup_variants_list, &variant->list_item_global); + lp->nr_setup_variants++; + llvmpipe_variant_count++; + } } lp_setup_set_setup_variant(lp->setup, @@ -904,7 +911,7 @@ lp_dump_setup_coef( const struct lp_setup_variant_key *key, { int i, slot; - for (i = 0; i < NUM_CHANNELS; i++) { + for (i = 0; i < TGSI_NUM_CHANNELS; i++) { float a0 = sa0 [0][i]; float dadx = sdadx[0][i]; float dady = sdady[0][i]; @@ -916,7 +923,7 @@ lp_dump_setup_coef( const struct lp_setup_variant_key *key, for (slot = 0; slot < key->num_inputs; slot++) { unsigned usage_mask = key->inputs[slot].usage_mask; - for (i = 0; i < NUM_CHANNELS; i++) { + for (i = 0; i < TGSI_NUM_CHANNELS; i++) { if (usage_mask & (1 << i)) { float a0 = sa0 [1 + slot][i]; float dadx = sdadx[1 + slot][i];