mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
intel/blorp: Avoid brw types in blorp_priv.h
Abuse void* here so there's one less file dependent on specific brw types. We can revisit if there's a need later, if we ever end up with a common type for prog_data. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27581>
This commit is contained in:
parent
b28cf9123b
commit
f4df4be7e7
3 changed files with 18 additions and 13 deletions
|
|
@ -214,8 +214,9 @@ blorp_params_get_layer_offset_vs(struct blorp_batch *batch,
|
|||
.base = BLORP_BASE_KEY_INIT(BLORP_SHADER_TYPE_LAYER_OFFSET_VS),
|
||||
};
|
||||
|
||||
if (params->wm_prog_data)
|
||||
blorp_key.num_inputs = params->wm_prog_data->num_varying_inputs;
|
||||
struct brw_wm_prog_data *wm_prog_data = params->wm_prog_data;
|
||||
if (wm_prog_data)
|
||||
blorp_key.num_inputs = wm_prog_data->num_varying_inputs;
|
||||
|
||||
if (blorp->lookup_shader(batch, &blorp_key, sizeof(blorp_key),
|
||||
¶ms->vs_prog_kernel, ¶ms->vs_prog_data))
|
||||
|
|
|
|||
|
|
@ -246,15 +246,17 @@ emit_urb_config(struct blorp_batch *batch,
|
|||
*
|
||||
* where 'n' stands for number of varying inputs expressed as vec4s.
|
||||
*/
|
||||
const unsigned num_varyings =
|
||||
params->wm_prog_data ? params->wm_prog_data->num_varying_inputs : 0;
|
||||
const unsigned total_needed = 16 + 16 + num_varyings * 16;
|
||||
struct brw_wm_prog_data *wm_prog_data = params->wm_prog_data;
|
||||
const unsigned num_varyings =
|
||||
wm_prog_data ? wm_prog_data->num_varying_inputs : 0;
|
||||
const unsigned total_needed = 16 + 16 + num_varyings * 16;
|
||||
|
||||
/* The URB size is expressed in units of 64 bytes (512 bits) */
|
||||
const unsigned vs_entry_size = DIV_ROUND_UP(total_needed, 64);
|
||||
|
||||
ASSERTED struct brw_sf_prog_data *sf_prog_data = params->sf_prog_data;
|
||||
ASSERTED const unsigned sf_entry_size =
|
||||
params->sf_prog_data ? params->sf_prog_data->urb_entry_size : 0;
|
||||
sf_prog_data ? sf_prog_data->urb_entry_size : 0;
|
||||
|
||||
#if GFX_VER >= 7
|
||||
assert(sf_entry_size == 0);
|
||||
|
|
@ -347,8 +349,9 @@ blorp_emit_input_varying_data(struct blorp_batch *batch,
|
|||
const unsigned vec4_size_in_bytes = 4 * sizeof(float);
|
||||
const unsigned max_num_varyings =
|
||||
DIV_ROUND_UP(sizeof(params->wm_inputs), vec4_size_in_bytes);
|
||||
struct brw_wm_prog_data *wm_prog_data = params->wm_prog_data;
|
||||
const unsigned num_varyings =
|
||||
params->wm_prog_data ? params->wm_prog_data->num_varying_inputs : 0;
|
||||
wm_prog_data ? wm_prog_data->num_varying_inputs : 0;
|
||||
|
||||
*size = 16 + num_varyings * vec4_size_in_bytes;
|
||||
|
||||
|
|
@ -369,7 +372,7 @@ blorp_emit_input_varying_data(struct blorp_batch *batch,
|
|||
for (unsigned i = 0; i < max_num_varyings; i++) {
|
||||
const gl_varying_slot attr = VARYING_SLOT_VAR0 + i;
|
||||
|
||||
const int input_index = params->wm_prog_data->urb_setup[attr];
|
||||
const int input_index = wm_prog_data->urb_setup[attr];
|
||||
if (input_index < 0)
|
||||
continue;
|
||||
|
||||
|
|
@ -474,8 +477,9 @@ static void
|
|||
blorp_emit_vertex_elements(struct blorp_batch *batch,
|
||||
const struct blorp_params *params)
|
||||
{
|
||||
struct brw_wm_prog_data *wm_prog_data = params->wm_prog_data;
|
||||
const unsigned num_varyings =
|
||||
params->wm_prog_data ? params->wm_prog_data->num_varying_inputs : 0;
|
||||
wm_prog_data ? wm_prog_data->num_varying_inputs : 0;
|
||||
bool need_ndc = batch->blorp->compiler->devinfo->ver <= 5;
|
||||
const unsigned num_elements = 2 + need_ndc + num_varyings;
|
||||
|
||||
|
|
|
|||
|
|
@ -231,13 +231,13 @@ struct blorp_params
|
|||
unsigned num_draw_buffers;
|
||||
unsigned num_layers;
|
||||
uint32_t vs_prog_kernel;
|
||||
struct brw_vs_prog_data *vs_prog_data;
|
||||
void *vs_prog_data;
|
||||
uint32_t sf_prog_kernel;
|
||||
struct brw_sf_prog_data *sf_prog_data;
|
||||
void *sf_prog_data;
|
||||
uint32_t wm_prog_kernel;
|
||||
struct brw_wm_prog_data *wm_prog_data;
|
||||
void *wm_prog_data;
|
||||
uint32_t cs_prog_kernel;
|
||||
struct brw_cs_prog_data *cs_prog_data;
|
||||
void *cs_prog_data;
|
||||
|
||||
bool use_pre_baked_binding_table;
|
||||
uint32_t pre_baked_binding_table_offset;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue