gallium: add PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY
[mesa.git] / src / gallium / drivers / freedreno / freedreno_screen.c
index f338d756dfef1572b6e870b0435e05562a1a684d..a414cb6d60ef9f659dea6ed348682b99245cdc78 100644 (file)
@@ -261,6 +261,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
                return 64;
 
        case PIPE_CAP_GLSL_FEATURE_LEVEL:
+       case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
                if (glsl120)
                        return 120;
                return is_ir3(screen) ? 140 : 120;
@@ -340,6 +341,12 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
        case PIPE_CAP_FENCE_SIGNAL:
        case PIPE_CAP_CONSTBUF0_FLAGS:
        case PIPE_CAP_PACKED_UNIFORMS:
+       case PIPE_CAP_CONSERVATIVE_RASTER_POST_SNAP_TRIANGLES:
+       case PIPE_CAP_CONSERVATIVE_RASTER_POST_SNAP_POINTS_LINES:
+       case PIPE_CAP_CONSERVATIVE_RASTER_PRE_SNAP_TRIANGLES:
+       case PIPE_CAP_CONSERVATIVE_RASTER_PRE_SNAP_POINTS_LINES:
+       case PIPE_CAP_CONSERVATIVE_RASTER_POST_DEPTH_COVERAGE:
+       case PIPE_CAP_MAX_CONSERVATIVE_RASTER_SUBPIXEL_PRECISION_BIAS:
                return 0;
 
        case PIPE_CAP_CONTEXT_PRIORITY_MASK:
@@ -479,6 +486,10 @@ fd_screen_get_paramf(struct pipe_screen *pscreen, enum pipe_capf param)
                return 16.0f;
        case PIPE_CAPF_MAX_TEXTURE_LOD_BIAS:
                return 15.0f;
+       case PIPE_CAPF_MIN_CONSERVATIVE_RASTER_DILATE:
+       case PIPE_CAPF_MAX_CONSERVATIVE_RASTER_DILATE:
+       case PIPE_CAPF_CONSERVATIVE_RASTER_DILATE_GRANULARITY:
+               return 0.0f;
        }
        debug_printf("unknown paramf %d\n", param);
        return 0;
@@ -719,12 +730,12 @@ fd_screen_bo_get_handle(struct pipe_screen *pscreen,
 {
        whandle->stride = stride;
 
-       if (whandle->type == DRM_API_HANDLE_TYPE_SHARED) {
+       if (whandle->type == WINSYS_HANDLE_TYPE_SHARED) {
                return fd_bo_get_name(bo, &whandle->handle) == 0;
-       } else if (whandle->type == DRM_API_HANDLE_TYPE_KMS) {
+       } else if (whandle->type == WINSYS_HANDLE_TYPE_KMS) {
                whandle->handle = fd_bo_handle(bo);
                return TRUE;
-       } else if (whandle->type == DRM_API_HANDLE_TYPE_FD) {
+       } else if (whandle->type == WINSYS_HANDLE_TYPE_FD) {
                whandle->handle = fd_bo_dmabuf(bo);
                return TRUE;
        } else {
@@ -739,11 +750,11 @@ fd_screen_bo_from_handle(struct pipe_screen *pscreen,
        struct fd_screen *screen = fd_screen(pscreen);
        struct fd_bo *bo;
 
-       if (whandle->type == DRM_API_HANDLE_TYPE_SHARED) {
+       if (whandle->type == WINSYS_HANDLE_TYPE_SHARED) {
                bo = fd_bo_from_name(screen->dev, whandle->handle);
-       } else if (whandle->type == DRM_API_HANDLE_TYPE_KMS) {
+       } else if (whandle->type == WINSYS_HANDLE_TYPE_KMS) {
                bo = fd_bo_from_handle(screen->dev, whandle->handle, 0);
-       } else if (whandle->type == DRM_API_HANDLE_TYPE_FD) {
+       } else if (whandle->type == WINSYS_HANDLE_TYPE_FD) {
                bo = fd_bo_from_dmabuf(screen->dev, whandle->handle);
        } else {
                DBG("Attempt to import unsupported handle type %d", whandle->type);