diff options
author | Dave Airlie <[email protected]> | 2017-01-18 13:54:17 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2017-01-31 09:28:24 +1000 |
commit | 68c5da7e664b19f6f3cd241a07136a033fd481b7 (patch) | |
tree | 1b38bad6916b0643bbfe102b9bbbdf61d216d723 /src/amd/vulkan | |
parent | f26fa879b74d293b35bc22379f2dc7b674c56829 (diff) |
radv: add code to set gs_table_depth.
Review-by: Bas Nieuwenhuizen <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/vulkan')
-rw-r--r-- | src/amd/vulkan/radv_device.c | 32 | ||||
-rw-r--r-- | src/amd/vulkan/radv_private.h | 3 |
2 files changed, 35 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 23cf0d099c0..b7978bb16a2 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -768,6 +768,36 @@ radv_queue_finish(struct radv_queue *queue) queue->device->ws->buffer_destroy(queue->compute_scratch_bo); } +static void +radv_device_init_gs_info(struct radv_device *device) +{ + switch (device->physical_device->rad_info.family) { + case CHIP_OLAND: + case CHIP_HAINAN: + case CHIP_KAVERI: + case CHIP_KABINI: + case CHIP_MULLINS: + case CHIP_ICELAND: + case CHIP_CARRIZO: + case CHIP_STONEY: + device->gs_table_depth = 16; + return; + case CHIP_TAHITI: + case CHIP_PITCAIRN: + case CHIP_VERDE: + case CHIP_BONAIRE: + case CHIP_HAWAII: + case CHIP_TONGA: + case CHIP_FIJI: + case CHIP_POLARIS10: + case CHIP_POLARIS11: + device->gs_table_depth = 32; + return; + default: + unreachable("unknown GPU"); + } +} + VkResult radv_CreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, @@ -849,6 +879,8 @@ VkResult radv_CreateDevice( device->scratch_waves = MAX2(32 * physical_device->rad_info.num_good_compute_units, max_threads_per_block / 64); + radv_device_init_gs_info(device); + result = radv_device_init_meta(device); if (result != VK_SUCCESS) goto fail; diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 68c161e0d85..60bc4b2f0f8 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -495,6 +495,9 @@ struct radv_device { bool llvm_supports_spill; uint32_t scratch_waves; + + uint32_t gs_table_depth; + /* MSAA sample locations. * The first index is the sample index. * The second index is the coordinate: X, Y. */ |