summaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys/kmsro/drm
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/kmsro/drm
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/kmsro/drm')
-rw-r--r--src/gallium/winsys/kmsro/drm/kmsro_drm_public.h4
-rw-r--r--src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c7
2 files changed, 7 insertions, 4 deletions
diff --git a/src/gallium/winsys/kmsro/drm/kmsro_drm_public.h b/src/gallium/winsys/kmsro/drm/kmsro_drm_public.h
index 4da4e4b72ba..9d81ea3ee39 100644
--- a/src/gallium/winsys/kmsro/drm/kmsro_drm_public.h
+++ b/src/gallium/winsys/kmsro/drm/kmsro_drm_public.h
@@ -28,7 +28,9 @@
#define __KMSRO_DRM_PUBLIC_H__
struct pipe_screen;
+struct pipe_screen_config;
-struct pipe_screen *kmsro_drm_screen_create(int fd);
+struct pipe_screen *kmsro_drm_screen_create(int fd,
+ const struct pipe_screen_config *config);
#endif /* __KMSRO_DRM_PUBLIC_H__ */
diff --git a/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c b/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c
index 3a452f91315..bf599a1497c 100644
--- a/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c
+++ b/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c
@@ -37,7 +37,8 @@
#include "pipe/p_screen.h"
#include "renderonly/renderonly.h"
-struct pipe_screen *kmsro_drm_screen_create(int fd)
+struct pipe_screen *kmsro_drm_screen_create(int fd,
+ const struct pipe_screen_config *config)
{
struct pipe_screen *screen = NULL;
struct renderonly ro = {
@@ -53,7 +54,7 @@ struct pipe_screen *kmsro_drm_screen_create(int fd)
* flag on allocation will have ensured.
*/
ro.create_for_resource = renderonly_create_gpu_import_for_resource,
- screen = vc4_drm_screen_create_renderonly(&ro);
+ screen = vc4_drm_screen_create_renderonly(&ro, config);
if (!screen)
close(ro.gpu_fd);
@@ -114,7 +115,7 @@ struct pipe_screen *kmsro_drm_screen_create(int fd)
ro.gpu_fd = drmOpenWithType("v3d", NULL, DRM_NODE_RENDER);
if (ro.gpu_fd >= 0) {
ro.create_for_resource = renderonly_create_kms_dumb_buffer_for_resource,
- screen = v3d_drm_screen_create_renderonly(&ro);
+ screen = v3d_drm_screen_create_renderonly(&ro, config);
if (!screen)
close(ro.gpu_fd);