summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc4/vc4_screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_screen.c')
-rw-r--r--src/gallium/drivers/vc4/vc4_screen.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/gallium/drivers/vc4/vc4_screen.c b/src/gallium/drivers/vc4/vc4_screen.c
index 5c17c55c938..f295ae05431 100644
--- a/src/gallium/drivers/vc4/vc4_screen.c
+++ b/src/gallium/drivers/vc4/vc4_screen.c
@@ -32,6 +32,8 @@
#include "util/u_format.h"
#include "util/ralloc.h"
+#include <xf86drm.h>
+#include "vc4_drm.h"
#include "vc4_screen.h"
#include "vc4_context.h"
#include "vc4_resource.h"
@@ -502,9 +504,17 @@ vc4_supports_branches(struct vc4_screen *screen)
{
#if USE_VC4_SIMULATOR
return true;
-#else
- return false;
#endif
+
+ struct drm_vc4_get_param p = {
+ .param = DRM_VC4_PARAM_SUPPORTS_BRANCHES,
+ };
+ int ret = drmIoctl(screen->fd, DRM_IOCTL_VC4_GET_PARAM, &p);
+
+ if (ret != 0)
+ return false;
+
+ return p.value;
}
struct pipe_screen *