Lines Matching defs:shader

427     *    command stream or shader will issue Cache Flush operation or
1318 bool alpha_to_coverage; /* for shader key */
1420 * setting it when dual color blending without an appropriate shader.
1812 bool flatshade; /* for shader state */
1814 bool clamp_fragment_color; /* for shader state */
1815 bool light_twoside; /* for shader state */
3439 struct iris_compiled_shader *shader = ice->shaders.prog[stage];
3440 if (!shader || (shader->num_system_values == 0 &&
3441 shader->kernel_input_size == 0))
3444 assert(shader->num_cbufs > 0);
3446 unsigned sysval_cbuf_index = shader->num_cbufs - 1;
3449 ALIGN(shader->kernel_input_size, sizeof(uint32_t));
3451 shader->num_system_values * sizeof(uint32_t);
3458 if (shader->kernel_input_size > 0)
3459 memcpy(map, grid->input, shader->kernel_input_size);
3462 for (int i = 0; i < shader->num_system_values; i++) {
3463 uint32_t sysval = shader->system_values[i];
3979 * 3DSTATE_SO_DECL_LIST is a list of shader outputs we want the streamout
3980 * hardware to record. We can create it entirely based on the shader, with
3983 * 3DSTATE_STREAMOUT is an annoying mix of shader-based information and
3984 * state-based settings. We capture the shader-related ones here, and merge
4125 /* If two sided color is enabled, the fragment shader's gl_Color
4336 /* Ask the hardware to supply PrimitiveID if the fragment shader
4458 KSP(const struct iris_compiled_shader *shader)
4460 struct iris_resource *res = (void *) shader->assembly.res;
4461 return iris_bo_offset_from_base_address(res->bo) + shader->assembly.offset;
4465 pkt.KernelStartPointer = KSP(shader); \
4466 pkt.BindingTableEntryCount = shader->bt.size_bytes / 4; \
4507 * Encode most of 3DSTATE_VS based on the compiled shader.
4511 struct iris_compiled_shader *shader)
4513 struct brw_stage_prog_data *prog_data = shader->prog_data;
4516 iris_pack_command(GENX(3DSTATE_VS), shader->derived_data, vs) {
4526 * Encode most of 3DSTATE_HS based on the compiled shader.
4530 struct iris_compiled_shader *shader)
4532 struct brw_stage_prog_data *prog_data = shader->prog_data;
4536 iris_pack_command(GENX(3DSTATE_HS), shader->derived_data, hs) {
4570 * Encode 3DSTATE_TE and most of 3DSTATE_DS based on the compiled shader.
4574 struct iris_compiled_shader *shader)
4576 struct brw_stage_prog_data *prog_data = shader->prog_data;
4580 uint32_t *ds_state = (void *) shader->derived_data;
4619 * Encode most of 3DSTATE_GS based on the compiled shader.
4623 struct iris_compiled_shader *shader)
4625 struct brw_stage_prog_data *prog_data = shader->prog_data;
4629 iris_pack_command(GENX(3DSTATE_GS), shader->derived_data, gs) {
4666 * Encode most of 3DSTATE_PS and 3DSTATE_PS_EXTRA based on the shader.
4670 struct iris_compiled_shader *shader)
4672 struct brw_stage_prog_data *prog_data = shader->prog_data;
4673 struct brw_wm_prog_data *wm_prog_data = (void *) shader->prog_data;
4675 uint32_t *ps_state = (void *) shader->derived_data;
4680 ps.BindingTableEntryCount = shader->bt.size_bytes / 4;
4726 * Compute the size of the derived data (shader command packets).
4732 struct iris_compiled_shader *shader)
4734 struct brw_cs_prog_data *cs_prog_data = (void *) shader->prog_data;
4735 void *map = shader->derived_data;
4747 desc.BindingTableEntryCount = MIN2(shader->bt.size_bytes / 4, 31);
4783 * Create any state packets corresponding to the given shader stage
4784 * (i.e. 3DSTATE_VS) and save them as "derived data" in the shader variant.
4791 struct iris_compiled_shader *shader)
4795 iris_store_vs_state(devinfo, shader);
4798 iris_store_tcs_state(devinfo, shader);
4801 iris_store_tes_state(devinfo, shader);
4804 iris_store_gs_state(devinfo, shader);
4807 iris_store_fs_state(devinfo, shader);
4810 iris_store_cs_state(devinfo, shader);
5076 assert(s < shader->bt.size_bytes / sizeof(uint32_t)); \
5080 if (!pin_only && shader->bt.used_mask[section] != 0) \
5081 assert(shader->bt.offsets[section] == s);
5084 * Populate the binding table for a given shader stage.
5086 * This fills out the table of pointers to surfaces required by the shader,
5097 struct iris_compiled_shader *shader = ice->shaders.prog[stage];
5098 if (!shader)
5101 struct iris_binding_table *bt = &shader->bt;
5102 UNUSED struct brw_stage_prog_data *prog_data = shader->prog_data;
5117 shader->bt.used_mask[IRIS_SURFACE_GROUP_CS_WORK_GROUPS]) {
5336 struct iris_compiled_shader *shader = ice->shaders.prog[stage];
5338 if (!shader)
5341 struct brw_stage_prog_data *prog_data = (void *) shader->prog_data;
5351 &shader->bt, IRIS_SURFACE_GROUP_UBO, range->block);
5382 struct iris_compiled_shader *shader = ice->shaders.prog[stage];
5384 if (shader) {
5385 struct iris_bo *bo = iris_resource_bo(shader->assembly.res);
5388 pin_scratch_space(ice, batch, shader->prog_data, stage);
5449 struct iris_compiled_shader *shader = ice->shaders.prog[stage];
5451 if (shader) {
5452 struct iris_bo *bo = iris_resource_bo(shader->assembly.res);
5461 pin_scratch_space(ice, batch, shader->prog_data, stage);
5618 struct iris_compiled_shader *shader = ice->shaders.prog[stage];
5619 struct brw_stage_prog_data *prog_data = (void *) shader->prog_data;
5637 &shader->bt, IRIS_SURFACE_GROUP_UBO, range->block);
5672 struct iris_compiled_shader *shader = ice->shaders.prog[stage];
5673 struct brw_stage_prog_data *prog_data = (void *) shader->prog_data;
6013 struct iris_compiled_shader *shader = ice->shaders.prog[stage];
6015 if (!shader)
6134 struct iris_compiled_shader *shader = ice->shaders.prog[stage];
6136 if (shader) {
6137 struct brw_stage_prog_data *prog_data = shader->prog_data;
6138 struct iris_resource *cache = (void *) shader->assembly.res;
6175 ps.KernelStartPointer0 = KSP(shader) +
6177 ps.KernelStartPointer1 = KSP(shader) +
6179 ps.KernelStartPointer2 = KSP(shader) +
6208 uint32_t *shader_ps = (uint32_t *) shader->derived_data;
6215 uint32_t *pkt = (uint32_t *) shader->derived_data;
6223 iris_batch_emit(batch, shader->derived_data,
6415 * when the shader doesn't use a dual source render target write.
7128 struct iris_compiled_shader *shader =
7130 struct brw_stage_prog_data *prog_data = shader->prog_data;
7165 .KernelStartPointer = KSP(shader),
7172 .BindingTableEntryCount = MIN2(shader->bt.size_bytes / 4, 31),
7195 struct iris_compiled_shader *shader =
7197 struct brw_stage_prog_data *prog_data = shader->prog_data;
7290 KSP(shader) + brw_cs_prog_data_prog_offset(cs_prog_data,
7299 desc[i] |= ((uint32_t *) shader->derived_data)[i];
7343 struct iris_compiled_shader *shader =
7359 shader->kernel_input_size > 0)
7370 iris_use_pinned_bo(batch, iris_resource_bo(shader->assembly.res), false,