diff options
Diffstat (limited to 'src/gallium/drivers/svga/svga_screen.c')
-rw-r--r-- | src/gallium/drivers/svga/svga_screen.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c index 1368267d962..1ec91e57d3d 100644 --- a/src/gallium/drivers/svga/svga_screen.c +++ b/src/gallium/drivers/svga/svga_screen.c @@ -337,6 +337,9 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param) case PIPE_CAP_GENERATE_MIPMAP: return sws->have_generate_mipmap_cmd; + case PIPE_CAP_NATIVE_FENCE_FD: + return sws->have_fence_fd; + /* Unsupported features */ case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: case PIPE_CAP_TEXTURE_MIRROR_CLAMP: @@ -380,7 +383,6 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param) case PIPE_CAP_PCI_DEVICE: case PIPE_CAP_PCI_FUNCTION: case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR: - case PIPE_CAP_NATIVE_FENCE_FD: return 0; case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT: return 64; @@ -864,6 +866,16 @@ svga_fence_finish(struct pipe_screen *screen, static int +svga_fence_get_fd(struct pipe_screen *screen, + struct pipe_fence_handle *fence) +{ + struct svga_winsys_screen *sws = svga_screen(screen)->sws; + + return sws->fence_get_fd(sws, fence, TRUE); +} + + +static int svga_get_driver_query_info(struct pipe_screen *screen, unsigned index, struct pipe_driver_query_info *info) @@ -1024,6 +1036,8 @@ svga_screen_create(struct svga_winsys_screen *sws) screen->context_create = svga_context_create; screen->fence_reference = svga_fence_reference; screen->fence_finish = svga_fence_finish; + screen->fence_get_fd = svga_fence_get_fd; + screen->get_driver_query_info = svga_get_driver_query_info; svgascreen->sws = sws; |