Mesa (main): zink: set new point/line caps
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Nov 8 15:09:11 UTC 2021
Module: Mesa
Branch: main
Commit: fbd61d2b0204e3875155cf5a9a6a8b7947fd3f7e
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fbd61d2b0204e3875155cf5a9a6a8b7947fd3f7e
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Thu Nov 4 10:33:58 2021 -0400
zink: set new point/line caps
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13676>
---
src/gallium/drivers/zink/zink_screen.c | 20 +++++++++++++++++---
src/mesa/state_tracker/st_extensions.c | 4 ++--
2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
index 2786f46aa9b..393ec41d477 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -698,13 +698,27 @@ zink_get_paramf(struct pipe_screen *pscreen, enum pipe_capf param)
switch (param) {
case PIPE_CAPF_MIN_LINE_WIDTH:
case PIPE_CAPF_MIN_LINE_WIDTH_AA:
+ if (!screen->info.feats.features.wideLines)
+ return 1.0f;
+ return MAX2(screen->info.props.limits.lineWidthRange[0], 0.01);
+
case PIPE_CAPF_MIN_POINT_SIZE:
case PIPE_CAPF_MIN_POINT_SIZE_AA:
- return 1;
+ if (!screen->info.feats.features.largePoints)
+ return 1.0f;
+ return MAX2(screen->info.props.limits.pointSizeRange[0], 0.01);
+
- case PIPE_CAPF_POINT_SIZE_GRANULARITY:
case PIPE_CAPF_LINE_WIDTH_GRANULARITY:
- return 0.1;
+ if (!screen->info.feats.features.wideLines)
+ return 0.1f;
+ return screen->info.props.limits.lineWidthGranularity;
+
+ case PIPE_CAPF_POINT_SIZE_GRANULARITY:
+ if (!screen->info.feats.features.largePoints)
+ return 0.1f;
+ return screen->info.props.limits.pointSizeGranularity;
+
case PIPE_CAPF_MAX_LINE_WIDTH:
case PIPE_CAPF_MAX_LINE_WIDTH_AA:
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 738e46c9fb8..f83a574f6d0 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -139,8 +139,8 @@ void st_init_limits(struct pipe_screen *screen,
c->MaxPointSizeAA =
_maxf(1.0f, screen->get_paramf(screen, PIPE_CAPF_MAX_POINT_SIZE_AA));
- c->MinPointSize = screen->get_paramf(screen, PIPE_CAPF_MIN_POINT_SIZE);
- c->MinPointSizeAA = screen->get_paramf(screen, PIPE_CAPF_MIN_POINT_SIZE_AA);
+ c->MinPointSize = MAX2(screen->get_paramf(screen, PIPE_CAPF_MIN_POINT_SIZE), 0.01);
+ c->MinPointSizeAA = MAX2(screen->get_paramf(screen, PIPE_CAPF_MIN_POINT_SIZE_AA), 0.01);
c->PointSizeGranularity = screen->get_paramf(screen, PIPE_CAPF_POINT_SIZE_GRANULARITY);
c->MaxTextureMaxAnisotropy =
More information about the mesa-commit
mailing list