v3d,v3dv: propagate NaNs bits in shader state records are reserved in v7.x

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
This commit is contained in:
Iago Toral Quiroga 2021-12-03 13:20:22 +01:00 committed by Marge Bot
parent a5f0305804
commit 6fe85136ef
3 changed files with 18 additions and 10 deletions

View file

@ -2175,7 +2175,9 @@ emit_gs_shader_state_record(struct v3dv_job *job,
gs_bin->prog_data.gs->base.threads == 4;
shader.geometry_bin_mode_shader_start_in_final_thread_section =
gs_bin->prog_data.gs->base.single_seg;
#if V3D_VERSION <= 42
shader.geometry_bin_mode_shader_propagate_nans = true;
#endif
shader.geometry_bin_mode_shader_uniforms_address =
gs_bin_uniforms;
@ -2185,7 +2187,9 @@ emit_gs_shader_state_record(struct v3dv_job *job,
gs->prog_data.gs->base.threads == 4;
shader.geometry_render_mode_shader_start_in_final_thread_section =
gs->prog_data.gs->base.single_seg;
#if V3D_VERSION <= 42
shader.geometry_render_mode_shader_propagate_nans = true;
#endif
shader.geometry_render_mode_shader_uniforms_address =
gs_render_uniforms;
}

View file

@ -471,19 +471,19 @@ pack_shader_state_record(struct v3dv_pipeline *pipeline)
shader.number_of_varyings_in_fragment_shader =
prog_data_fs->num_inputs;
shader.coordinate_shader_propagate_nans = true;
shader.vertex_shader_propagate_nans = true;
shader.fragment_shader_propagate_nans = true;
/* Note: see previous note about addresses */
/* shader.coordinate_shader_code_address */
/* shader.vertex_shader_code_address */
/* shader.fragment_shader_code_address */
#if V3D_VERSION == 42
shader.coordinate_shader_propagate_nans = true;
shader.vertex_shader_propagate_nans = true;
shader.fragment_shader_propagate_nans = true;
/* FIXME: Use combined input/output size flag in the common case (also
* on v3d, see v3dx_draw).
*/
#if V3D_VERSION == 42
shader.coordinate_shader_has_separate_input_and_output_vpm_blocks =
prog_data_vs_bin->separate_segments;
shader.vertex_shader_has_separate_input_and_output_vpm_blocks =

View file

@ -396,7 +396,9 @@ v3d_emit_gs_state_record(struct v3d_job *job,
gs_bin->prog_data.gs->base.threads == 4;
shader.geometry_bin_mode_shader_start_in_final_thread_section =
gs_bin->prog_data.gs->base.single_seg;
#if V3D_VERSION <= 42
shader.geometry_bin_mode_shader_propagate_nans = true;
#endif
shader.geometry_bin_mode_shader_uniforms_address =
gs_bin_uniforms;
@ -406,7 +408,9 @@ v3d_emit_gs_state_record(struct v3d_job *job,
gs->prog_data.gs->base.threads == 4;
shader.geometry_render_mode_shader_start_in_final_thread_section =
gs->prog_data.gs->base.single_seg;
#if V3D_VERSION <= 42
shader.geometry_render_mode_shader_propagate_nans = true;
#endif
shader.geometry_render_mode_shader_uniforms_address =
gs_render_uniforms;
}
@ -657,10 +661,6 @@ v3d_emit_gl_shader_state(struct v3d_context *v3d,
shader.number_of_varyings_in_fragment_shader =
v3d->prog.fs->prog_data.fs->num_inputs;
shader.coordinate_shader_propagate_nans = true;
shader.vertex_shader_propagate_nans = true;
shader.fragment_shader_propagate_nans = true;
shader.coordinate_shader_code_address =
cl_address(v3d_resource(v3d->prog.cs->resource)->bo,
v3d->prog.cs->offset);
@ -671,10 +671,14 @@ v3d_emit_gl_shader_state(struct v3d_context *v3d,
cl_address(v3d_resource(v3d->prog.fs->resource)->bo,
v3d->prog.fs->offset);
#if V3D_VERSION <= 42
shader.coordinate_shader_propagate_nans = true;
shader.vertex_shader_propagate_nans = true;
shader.fragment_shader_propagate_nans = true;
/* XXX: Use combined input/output size flag in the common
* case.
*/
#if V3D_VERSION <= 42
shader.coordinate_shader_has_separate_input_and_output_vpm_blocks =
v3d->prog.cs->prog_data.vs->separate_segments;
shader.vertex_shader_has_separate_input_and_output_vpm_blocks =