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