X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fauxiliary%2Fdraw%2Fdraw_pt_fetch_shade_pipeline_llvm.c;h=507c1586947b7d98941a73adcf53540c4936ad53;hb=1d35f77228ad540a551a8e09e062b764a6e31f5e;hp=04b286f0f5b047e0595b5842ed3cd6b2ca070407;hpb=35840ab189595b817fa8b1a1df8cc92474a7c38d;p=mesa.git diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index 04b286f0f5b..507c1586947 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -81,6 +81,8 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle, const unsigned nr = MAX2( shader->base.info.num_inputs, shader->base.info.num_outputs + 1 ); + unsigned i; + fpme->input_prim = in_prim; fpme->opt = opt; @@ -138,7 +140,6 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle, } else { /* Need to create new variant */ - unsigned i; /* First check if we've created too many variants. If so, free * 25% of the LRU to avoid using too much memory. @@ -171,11 +172,14 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle, fpme->current_variant = variant; - /*XXX we only support one constant buffer */ - fpme->llvm->jit_context.vs_constants = - draw->pt.user.vs_constants[0]; - fpme->llvm->jit_context.gs_constants = - draw->pt.user.gs_constants[0]; + for (i = 0; i < Elements(fpme->llvm->jit_context.vs_constants); ++i) { + fpme->llvm->jit_context.vs_constants[i] = + draw->pt.user.vs_constants[i]; + } + for (i = 0; i < Elements(fpme->llvm->jit_context.gs_constants); ++i) { + fpme->llvm->jit_context.gs_constants[i] = + draw->pt.user.gs_constants[i]; + } fpme->llvm->jit_context.planes = (float (*) [DRAW_TOTAL_CLIP_PLANES][4]) draw->pt.user.planes[0]; fpme->llvm->jit_context.viewport =