aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys/vc4
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2019-05-01 15:02:27 -0700
committerEric Anholt <[email protected]>2019-05-13 12:03:11 -0700
commit60a64f028d75ad6ca13468490adf1748cf9f1ec0 (patch)
tree7cdc160a916fc95db2c1154490e9d741df80d210 /src/gallium/winsys/vc4
parent0c31fe9ee743f699bcabcb638ccc83e515f0d1bd (diff)
v3d: Use driconf to expose non-MSAA texture limits for Xorg.
The V3D 4.2 HW has a limit to MSAA texture sizes of 4096. With non-MSAA, we can go up to 7680 (actually probably 8138, but that hasn't been validated by the HW team). Exposing 7680 in X11 will allow dual 4k displays.
Diffstat (limited to 'src/gallium/winsys/vc4')
-rw-r--r--src/gallium/winsys/vc4/drm/vc4_drm_public.h6
-rw-r--r--src/gallium/winsys/vc4/drm/vc4_drm_winsys.c7
2 files changed, 8 insertions, 5 deletions
diff --git a/src/gallium/winsys/vc4/drm/vc4_drm_public.h b/src/gallium/winsys/vc4/drm/vc4_drm_public.h
index 102c1487ba5..a727242d7ba 100644
--- a/src/gallium/winsys/vc4/drm/vc4_drm_public.h
+++ b/src/gallium/winsys/vc4/drm/vc4_drm_public.h
@@ -27,7 +27,9 @@
struct pipe_screen;
struct renderonly;
-struct pipe_screen *vc4_drm_screen_create(int drmFD);
-struct pipe_screen *vc4_drm_screen_create_renderonly(struct renderonly *ro);
+struct pipe_screen *vc4_drm_screen_create(int drmFD,
+ const struct pipe_screen_config *config);
+struct pipe_screen *vc4_drm_screen_create_renderonly(struct renderonly *ro,
+ const struct pipe_screen_config *config);
#endif /* __VC4_DRM_PUBLIC_H__ */
diff --git a/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c b/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c
index 4215857d06b..2d05ac8cc92 100644
--- a/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c
+++ b/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c
@@ -32,7 +32,7 @@
#include "drm-uapi/vc4_drm.h"
struct pipe_screen *
-vc4_drm_screen_create(int fd)
+vc4_drm_screen_create(int fd, const struct pipe_screen_config *config)
{
bool v3d_present = true;
@@ -49,14 +49,15 @@ vc4_drm_screen_create(int fd)
return vc4_screen_create(fcntl(fd, F_DUPFD_CLOEXEC, 3), NULL);
#ifdef GALLIUM_KMSRO
- return kmsro_drm_screen_create(fd);
+ return kmsro_drm_screen_create(fd, config);
#endif
return NULL;
}
struct pipe_screen *
-vc4_drm_screen_create_renderonly(struct renderonly *ro)
+vc4_drm_screen_create_renderonly(struct renderonly *ro,
+ const struct pipe_screen_config *config)
{
return vc4_screen_create(ro->gpu_fd, ro);
}