radv: Add Vega M support.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Thu, 19 Apr 2018 04:35:08 +0000 (06:35 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Thu, 19 Apr 2018 14:36:21 +0000 (16:36 +0200)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/amd/vulkan/radv_device.c
src/amd/vulkan/radv_pipeline.c
src/amd/vulkan/radv_shader.c
src/amd/vulkan/si_cmd_buffer.c

index 4f384163b8627ed5243e76592dcc22cc783b5198..9950ed40f1bfa76af6e201cbdee1b4ff27743724 100644 (file)
@@ -101,6 +101,7 @@ radv_get_device_name(enum radeon_family family, char *name, size_t name_len)
        case CHIP_POLARIS11: chip_string = "AMD RADV POLARIS11"; break;
        case CHIP_POLARIS12: chip_string = "AMD RADV POLARIS12"; break;
        case CHIP_STONEY: chip_string = "AMD RADV STONEY"; break;
+       case CHIP_VEGAM: chip_string = "AMD RADV VEGA M"; break;
        case CHIP_VEGA10: chip_string = "AMD RADV VEGA10"; break;
        case CHIP_VEGA12: chip_string = "AMD RADV VEGA12"; break;
        case CHIP_RAVEN: chip_string = "AMD RADV RAVEN"; break;
@@ -1017,7 +1018,8 @@ void radv_GetPhysicalDeviceProperties2(
                                pdevice->rad_info.family == CHIP_ICELAND ||
                                pdevice->rad_info.family == CHIP_POLARIS10 ||
                                pdevice->rad_info.family == CHIP_POLARIS11 ||
-                               pdevice->rad_info.family == CHIP_POLARIS12 ? 8 : 10;
+                               pdevice->rad_info.family == CHIP_POLARIS12 ||
+                               pdevice->rad_info.family == CHIP_VEGAM ? 8 : 10;
                        properties->wavefrontSize = 64;
 
                        /* SGPR. */
@@ -1358,6 +1360,7 @@ radv_device_init_gs_info(struct radv_device *device)
        case CHIP_POLARIS10:
        case CHIP_POLARIS11:
        case CHIP_POLARIS12:
+       case CHIP_VEGAM:
        case CHIP_VEGA10:
        case CHIP_VEGA12:
        case CHIP_RAVEN:
index 88fccb2b2ea3e83d137de822b0cd72651e79e0fe..20afeda4480aec2848b207fd74dd3bd63de5d883 100644 (file)
@@ -3255,7 +3255,8 @@ radv_compute_ia_multi_vgt_param_helpers(struct radv_pipeline *pipeline,
                                    device->physical_device->rad_info.family == CHIP_FIJI ||
                                    device->physical_device->rad_info.family == CHIP_POLARIS10 ||
                                    device->physical_device->rad_info.family == CHIP_POLARIS11 ||
-                                   device->physical_device->rad_info.family == CHIP_POLARIS12)
+                                   device->physical_device->rad_info.family == CHIP_POLARIS12 ||
+                                   device->physical_device->rad_info.family == CHIP_VEGAM)
                                        ia_multi_vgt_param.partial_vs_wave = true;
                        } else {
                                ia_multi_vgt_param.partial_vs_wave = true;
index ac36cecb67498b9248d3724d0e7f18ebee3d001a..8e8a32f0256c312cb0012af5163689dc832687f7 100644 (file)
@@ -620,6 +620,7 @@ generate_shader_stats(struct radv_device *device,
        case CHIP_POLARIS10:
        case CHIP_POLARIS11:
        case CHIP_POLARIS12:
+       case CHIP_VEGAM:
                max_simd_waves = 8;
                break;
        default:
index 15edaa4b2b51caf1b3936d118e5194ac834ac1ce..80c819af49b3a67c0a0ca3dd029f96927c621ac7 100644 (file)
@@ -279,6 +279,10 @@ si_set_raster_config(struct radv_physical_device *physical_device,
                raster_config = 0x16000012;
                raster_config_1 = 0x00000000;
                break;
+       case CHIP_VEGAM:
+               raster_config = 0x3a00161a;
+               raster_config_1 = 0x0000002e;
+               break;
        case CHIP_TONGA:
                raster_config = 0x16000012;
                raster_config_1 = 0x0000002a;