mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-05 09:00:08 +01:00
dzn: Support basic subgroups
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20777>
This commit is contained in:
parent
33f59578fa
commit
bfd891fe66
3 changed files with 12 additions and 0 deletions
|
|
@ -520,6 +520,7 @@ dzn_physical_device_cache_caps(struct dzn_physical_device *pdev)
|
|||
|
||||
ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_ARCHITECTURE1, &pdev->architecture, sizeof(pdev->architecture));
|
||||
ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_D3D12_OPTIONS, &pdev->options, sizeof(pdev->options));
|
||||
ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_D3D12_OPTIONS1, &pdev->options1, sizeof(pdev->options1));
|
||||
ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_D3D12_OPTIONS2, &pdev->options2, sizeof(pdev->options2));
|
||||
ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_D3D12_OPTIONS3, &pdev->options3, sizeof(pdev->options3));
|
||||
ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_D3D12_OPTIONS12, &pdev->options12, sizeof(pdev->options12));
|
||||
|
|
@ -1708,6 +1709,10 @@ dzn_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
|||
pdevice->desc.dedicated_system_memory +
|
||||
pdevice->desc.shared_system_memory) / 4,
|
||||
128ull * 1024 * 1024, 2ull * 1024 * 1024 * 1024),
|
||||
.subgroupSupportedOperations = VK_SUBGROUP_FEATURE_BASIC_BIT,
|
||||
.subgroupSupportedStages = VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT |
|
||||
VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_GEOMETRY_BIT,
|
||||
.subgroupSize = pdevice->options1.WaveOps ? pdevice->options1.WaveLaneCountMin : 1,
|
||||
};
|
||||
memcpy(core_1_1.driverUUID, pdevice->driver_uuid, VK_UUID_SIZE);
|
||||
memcpy(core_1_1.deviceUUID, pdevice->device_uuid, VK_UUID_SIZE);
|
||||
|
|
@ -1783,6 +1788,11 @@ dzn_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
|||
|
||||
const VkPhysicalDeviceVulkan13Properties core_1_3 = {
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES,
|
||||
.minSubgroupSize = pdevice->options1.WaveOps ? pdevice->options1.WaveLaneCountMin : 1,
|
||||
.minSubgroupSize = pdevice->options1.WaveOps ? pdevice->options1.WaveLaneCountMax : 1,
|
||||
.maxComputeWorkgroupSubgroups = D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP /
|
||||
(pdevice->options1.WaveOps ? pdevice->options1.WaveLaneCountMin : 1),
|
||||
.requiredSubgroupSizeStages = 0,
|
||||
};
|
||||
|
||||
vk_foreach_struct(ext, pProperties->pNext) {
|
||||
|
|
|
|||
|
|
@ -219,6 +219,7 @@ dzn_pipeline_get_nir_shader(struct dzn_device *device,
|
|||
.caps = {
|
||||
.draw_parameters = true,
|
||||
.multiview = true,
|
||||
.subgroup_basic = true,
|
||||
},
|
||||
.ubo_addr_format = nir_address_format_32bit_index_offset,
|
||||
.ssbo_addr_format = nir_address_format_32bit_index_offset,
|
||||
|
|
|
|||
|
|
@ -207,6 +207,7 @@ struct dzn_physical_device {
|
|||
D3D_ROOT_SIGNATURE_VERSION root_sig_version;
|
||||
D3D12_FEATURE_DATA_ARCHITECTURE1 architecture;
|
||||
D3D12_FEATURE_DATA_D3D12_OPTIONS options;
|
||||
D3D12_FEATURE_DATA_D3D12_OPTIONS1 options1;
|
||||
D3D12_FEATURE_DATA_D3D12_OPTIONS2 options2;
|
||||
D3D12_FEATURE_DATA_D3D12_OPTIONS3 options3;
|
||||
D3D12_FEATURE_DATA_D3D12_OPTIONS12 options12;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue