nv50: disable compute
[mesa.git] / src / gallium / drivers / radeonsi / si_get.c
index b440230d227130a7f62ef4825525bfc9b1d50b48..a5cb209b59ee00194563ceee206a59c9b64056d3 100644 (file)
@@ -254,6 +254,9 @@ static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
        case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
                return 30;
 
+       case PIPE_CAP_MAX_VARYINGS:
+               return 32;
+
        case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK:
                return sscreen->info.chip_class <= VI ?
                        PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600 : 0;
@@ -455,15 +458,6 @@ static int si_get_shader_param(struct pipe_screen* pscreen,
                    !sscreen->llvm_has_working_vgpr_indexing)
                        return 0;
 
-               /* Doing indirect indexing on GFX9 with LLVM 6.0 hangs.
-                * This means we don't support INTERP instructions with
-                * indirect indexing on inputs.
-                */
-               if (shader == PIPE_SHADER_FRAGMENT &&
-                   !sscreen->llvm_has_working_vgpr_indexing &&
-                   HAVE_LLVM < 0x0700)
-                       return 0;
-
                /* TCS and TES load inputs directly from LDS or offchip
                 * memory, so indirect indexing is always supported.
                 * PS has to support indirect indexing, because we can't
@@ -492,7 +486,6 @@ static const struct nir_shader_compiler_options nir_options = {
        .lower_scmp = true,
        .lower_flrp32 = true,
        .lower_flrp64 = true,
-       .lower_fpow = true,
        .lower_fsat = true,
        .lower_fdiv = true,
        .lower_sub = true,
@@ -580,10 +573,12 @@ static int si_get_video_param(struct pipe_screen *screen,
                case PIPE_VIDEO_CAP_SUPPORTED:
                        return (codec == PIPE_VIDEO_FORMAT_MPEG4_AVC &&
                                (si_vce_is_fw_version_supported(sscreen) ||
-                               sscreen->info.family == CHIP_RAVEN)) ||
+                                sscreen->info.family == CHIP_RAVEN ||
+                                sscreen->info.family == CHIP_RAVEN2)) ||
                                (profile == PIPE_VIDEO_PROFILE_HEVC_MAIN &&
                                (sscreen->info.family == CHIP_RAVEN ||
-                               si_radeon_uvd_enc_supported(sscreen)));
+                                sscreen->info.family == CHIP_RAVEN2 ||
+                                si_radeon_uvd_enc_supported(sscreen)));
                case PIPE_VIDEO_CAP_NPOT_TEXTURES:
                        return 1;
                case PIPE_VIDEO_CAP_MAX_WIDTH:
@@ -631,7 +626,8 @@ static int si_get_video_param(struct pipe_screen *screen,
                                return profile == PIPE_VIDEO_PROFILE_HEVC_MAIN;
                        return false;
                case PIPE_VIDEO_FORMAT_JPEG:
-                       if (sscreen->info.family == CHIP_RAVEN)
+                       if (sscreen->info.family == CHIP_RAVEN ||
+                           sscreen->info.family == CHIP_RAVEN2)
                                return true;
                        if (sscreen->info.family < CHIP_CARRIZO || sscreen->info.family >= CHIP_VEGA10)
                                return false;