mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 20:08:06 +02:00
r300: Z16 polygon offset fixes
The way I understand the HW docs is that the polygon offset is applied always in 24bit depth domain (there are no polygon offset depth format control registers like r600 has), so we need to manually rescale for 16bit buffers. Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39196>
This commit is contained in:
parent
399c0d22f3
commit
83d636fc74
5 changed files with 3 additions and 10 deletions
|
|
@ -41,7 +41,6 @@ dEQP-GLES2.functional.fragment_ops.random.63,Fail
|
||||||
dEQP-GLES2.functional.fragment_ops.random.66,Fail
|
dEQP-GLES2.functional.fragment_ops.random.66,Fail
|
||||||
dEQP-GLES2.functional.fragment_ops.random.81,Fail
|
dEQP-GLES2.functional.fragment_ops.random.81,Fail
|
||||||
|
|
||||||
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units,Fail
|
|
||||||
dEQP-GLES2.functional.rasterization.primitives.line_loop_wide,Fail
|
dEQP-GLES2.functional.rasterization.primitives.line_loop_wide,Fail
|
||||||
dEQP-GLES2.functional.rasterization.primitives.line_strip_wide,Fail
|
dEQP-GLES2.functional.rasterization.primitives.line_strip_wide,Fail
|
||||||
dEQP-GLES2.functional.rasterization.primitives.points,Fail
|
dEQP-GLES2.functional.rasterization.primitives.points,Fail
|
||||||
|
|
@ -485,7 +484,6 @@ KHR-GLES2.texture_3d.filtering.sizes.63x63x63_nearest_mipmap_linear,Fail
|
||||||
KHR-GLES2.texture_3d.filtering.sizes.63x63x63_nearest_mipmap_nearest,Fail
|
KHR-GLES2.texture_3d.filtering.sizes.63x63x63_nearest_mipmap_nearest,Fail
|
||||||
|
|
||||||
# New failures with ES CTS 3.2.12.0
|
# New failures with ES CTS 3.2.12.0
|
||||||
dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units,Fail
|
|
||||||
dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.mat4_mat2_both,Fail
|
dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.mat4_mat2_both,Fail
|
||||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.mat4_mat2_both,Fail
|
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.mat4_mat2_both,Fail
|
||||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_both,Fail
|
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_both,Fail
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.rgb_half_float_oes,Fail
|
dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.rgb_half_float_oes,Fail
|
||||||
|
|
||||||
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units,Fail
|
|
||||||
dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units,Fail
|
|
||||||
dEQP-GLES2.functional.shaders.builtin_variable.frontfacing,Fail
|
dEQP-GLES2.functional.shaders.builtin_variable.frontfacing,Fail
|
||||||
dEQP-GLES2.functional.shaders.conversions.vector_combine.vec2_bool_to_ivec3_fragment,Fail
|
dEQP-GLES2.functional.shaders.conversions.vector_combine.vec2_bool_to_ivec3_fragment,Fail
|
||||||
dEQP-GLES2.functional.shaders.conversions.vector_combine.vec2_bvec2_to_ivec4_fragment,Fail
|
dEQP-GLES2.functional.shaders.conversions.vector_combine.vec2_bvec2_to_ivec4_fragment,Fail
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ dEQP-GLES2.functional.fragment_ops.random.66,Fail
|
||||||
dEQP-GLES2.functional.fragment_ops.random.81,Fail
|
dEQP-GLES2.functional.fragment_ops.random.81,Fail
|
||||||
dEQP-GLES2.functional.fragment_ops.random.77,Fail
|
dEQP-GLES2.functional.fragment_ops.random.77,Fail
|
||||||
|
|
||||||
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units,Fail
|
|
||||||
dEQP-GLES2.functional.rasterization.primitives.line_loop_wide,Fail
|
dEQP-GLES2.functional.rasterization.primitives.line_loop_wide,Fail
|
||||||
dEQP-GLES2.functional.rasterization.primitives.line_strip_wide,Fail
|
dEQP-GLES2.functional.rasterization.primitives.line_strip_wide,Fail
|
||||||
dEQP-GLES2.functional.shaders.builtin_variable.frontfacing,Fail
|
dEQP-GLES2.functional.shaders.builtin_variable.frontfacing,Fail
|
||||||
|
|
@ -474,7 +473,6 @@ KHR-GLES2.texture_3d.filtering.sizes.63x63x63_nearest_mipmap_linear,Fail
|
||||||
KHR-GLES2.texture_3d.filtering.sizes.63x63x63_nearest_mipmap_nearest,Fail
|
KHR-GLES2.texture_3d.filtering.sizes.63x63x63_nearest_mipmap_nearest,Fail
|
||||||
|
|
||||||
# New failures with ES CTS 3.2.12.0
|
# New failures with ES CTS 3.2.12.0
|
||||||
dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units,Fail
|
|
||||||
dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.mat4_mat2_both,Fail
|
dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.mat4_mat2_both,Fail
|
||||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.mat4_mat2_both,Fail
|
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.mat4_mat2_both,Fail
|
||||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_both,Fail
|
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_both,Fail
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.rgb_half_float_oes,Fail
|
dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.rgb_half_float_oes,Fail
|
||||||
|
|
||||||
dEQP-GLES2.functional.polygon_offset.default_factor_1_slope,Fail
|
dEQP-GLES2.functional.polygon_offset.default_factor_1_slope,Fail
|
||||||
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units,Fail
|
|
||||||
dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units,Fail
|
|
||||||
dEQP-GLES2.functional.polygon_offset.fixed16_factor_1_slope,Fail
|
dEQP-GLES2.functional.polygon_offset.fixed16_factor_1_slope,Fail
|
||||||
|
|
||||||
dEQP-GLES2.functional.shaders.loops.do_while_dynamic_iterations.mixed_break_continue_fragment,Fail
|
dEQP-GLES2.functional.shaders.loops.do_while_dynamic_iterations.mixed_break_continue_fragment,Fail
|
||||||
|
|
|
||||||
|
|
@ -1503,8 +1503,8 @@ static void* r300_create_rs_state(struct pipe_context* pipe,
|
||||||
|
|
||||||
/* Build the two command buffers for polygon offset setup. */
|
/* Build the two command buffers for polygon offset setup. */
|
||||||
if (polygon_offset_enable) {
|
if (polygon_offset_enable) {
|
||||||
float scale = state->offset_scale * 12;
|
float scale = state->offset_scale * 256 * 12;
|
||||||
float offset = state->offset_units * 4;
|
float offset = state->offset_units * 256 * 2;
|
||||||
|
|
||||||
BEGIN_CB(rs->cb_poly_offset_zb16, 5);
|
BEGIN_CB(rs->cb_poly_offset_zb16, 5);
|
||||||
OUT_CB_REG_SEQ(R300_SU_POLY_OFFSET_FRONT_SCALE, 4);
|
OUT_CB_REG_SEQ(R300_SU_POLY_OFFSET_FRONT_SCALE, 4);
|
||||||
|
|
@ -1515,6 +1515,7 @@ static void* r300_create_rs_state(struct pipe_context* pipe,
|
||||||
END_CB;
|
END_CB;
|
||||||
|
|
||||||
offset = state->offset_units * 2;
|
offset = state->offset_units * 2;
|
||||||
|
scale = state->offset_scale * 12;
|
||||||
|
|
||||||
BEGIN_CB(rs->cb_poly_offset_zb24, 5);
|
BEGIN_CB(rs->cb_poly_offset_zb24, 5);
|
||||||
OUT_CB_REG_SEQ(R300_SU_POLY_OFFSET_FRONT_SCALE, 4);
|
OUT_CB_REG_SEQ(R300_SU_POLY_OFFSET_FRONT_SCALE, 4);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue