diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c index fb0634f8994..64de2cebdc9 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.c +++ b/src/gallium/drivers/llvmpipe/lp_rast.c @@ -366,8 +366,7 @@ lp_rast_shade_tile(struct lp_rasterizer_task *task, mask[i / 4] |= (uint64_t)(0xffff) << (16 * (i % 4)); /* Propagate non-interpolated raster state. */ - task->thread_data.raster_state.viewport_index = inputs->viewport_index; - task->thread_data.raster_state.view_index = inputs->view_index; + lp_rast_task_init_thread_data(&task->thread_data, inputs); /* run shader on 4x4 block */ BEGIN_JIT_CALL(state, task); @@ -475,8 +474,7 @@ lp_rast_shade_quads_mask_sample(struct lp_rasterizer_task *task, */ if ((x % TILE_SIZE) < task->width && (y % TILE_SIZE) < task->height) { /* Propagate non-interpolated raster state. */ - task->thread_data.raster_state.viewport_index = inputs->viewport_index; - task->thread_data.raster_state.view_index = inputs->view_index; + lp_rast_task_init_thread_data(&task->thread_data, inputs); /* run shader on 4x4 block */ BEGIN_JIT_CALL(state, task); @@ -1383,3 +1381,10 @@ lp_rast_fence(struct lp_rasterizer *rast, if (fence) lp_fence_reference((struct lp_fence **)fence, rast->last_fence); } + +void +lp_rast_task_init_thread_data(struct lp_jit_thread_data *thread_data, const struct lp_rast_shader_inputs *inputs) +{ + thread_data->raster_state.viewport_index = inputs->viewport_index; + thread_data->raster_state.view_index = inputs->view_index; +} diff --git a/src/gallium/drivers/llvmpipe/lp_rast.h b/src/gallium/drivers/llvmpipe/lp_rast.h index de06745b311..0d021fa4916 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.h +++ b/src/gallium/drivers/llvmpipe/lp_rast.h @@ -447,4 +447,6 @@ void lp_rast_fence(struct lp_rasterizer *rast, struct lp_fence **fence); +void +lp_rast_task_init_thread_data(struct lp_jit_thread_data *thread_data, const struct lp_rast_shader_inputs *inputs); #endif diff --git a/src/gallium/drivers/llvmpipe/lp_rast_linear_fallback.c b/src/gallium/drivers/llvmpipe/lp_rast_linear_fallback.c index 6b4e062979a..8ab11307c92 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast_linear_fallback.c +++ b/src/gallium/drivers/llvmpipe/lp_rast_linear_fallback.c @@ -33,6 +33,7 @@ #include "util/u_math.h" #include "lp_debug.h" #include "lp_perf.h" +#include "lp_rast.h" #include "lp_rast_priv.h" @@ -103,8 +104,7 @@ shade_quads(struct lp_rasterizer_task *task, assert(!variant->key.depth.enabled); /* Propagate non-interpolated raster state */ - task->thread_data.raster_state.view_index = inputs->view_index; - task->thread_data.raster_state.viewport_index = inputs->viewport_index; + lp_rast_task_init_thread_data(&task->thread_data, inputs); /* run shader on 4x4 block */ BEGIN_JIT_CALL(state, task);