mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-11-24 02:34:17 +08:00
llvmpipe/setup: add point size clamping
Fixes dEQP-GLES2.functional.rasterization.limits.points dEQP-VK.rasterization.primitive_size.points.point_size* Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574>
This commit is contained in:
parent
1f071db43a
commit
65906d1331
@ -28,7 +28,6 @@ dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide
|
||||
dEQP-GLES2.functional.rasterization.limits.points
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec3_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias
|
||||
|
@ -30,7 +30,6 @@ dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide
|
||||
dEQP-GLES2.functional.rasterization.limits.points
|
||||
dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_corner
|
||||
dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center
|
||||
dEQP-GLES3.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z
|
||||
|
@ -95,4 +95,8 @@
|
||||
*/
|
||||
#define LP_MAX_SETUP_VARIANTS 64
|
||||
|
||||
/*
|
||||
* Max point size reported. Cap vertex shader point sizes to this.
|
||||
*/
|
||||
#define LP_MAX_POINT_WIDTH 255.0f
|
||||
#endif /* LP_LIMITS_H */
|
||||
|
@ -478,7 +478,7 @@ llvmpipe_get_paramf(struct pipe_screen *screen, enum pipe_capf param)
|
||||
case PIPE_CAPF_MAX_POINT_WIDTH:
|
||||
/* fall-through */
|
||||
case PIPE_CAPF_MAX_POINT_WIDTH_AA:
|
||||
return 255.0; /* arbitrary */
|
||||
return LP_MAX_POINT_WIDTH; /* arbitrary */
|
||||
case PIPE_CAPF_MAX_TEXTURE_ANISOTROPY:
|
||||
return 16.0; /* not actually signficant at this time */
|
||||
case PIPE_CAPF_MAX_TEXTURE_LOD_BIAS:
|
||||
|
@ -337,10 +337,13 @@ try_setup_point( struct lp_setup_context *setup,
|
||||
/* x/y positions in fixed point */
|
||||
const struct lp_setup_variant_key *key = &setup->setup.variant->key;
|
||||
const int sizeAttr = setup->psize_slot;
|
||||
const float size
|
||||
float size
|
||||
= (setup->point_size_per_vertex && sizeAttr > 0) ? v0[sizeAttr][0]
|
||||
: setup->point_size;
|
||||
|
||||
if (size > LP_MAX_POINT_WIDTH)
|
||||
size = LP_MAX_POINT_WIDTH;
|
||||
|
||||
/* Yes this is necessary to accurately calculate bounding boxes
|
||||
* with the two fill-conventions we support. GL (normally) ends
|
||||
* up needing a bottom-left fill convention, which requires
|
||||
|
Loading…
Reference in New Issue
Block a user