RADV_PERFTEST_RT = 1u << 8,
RADV_PERFTEST_NGGC = 1u << 9,
RADV_PERFTEST_EMULATE_RT = 1u << 10,
- RADV_PERFTEST_NV_MS = 1u << 11,
- RADV_PERFTEST_RT_WAVE_64 = 1u << 12,
- RADV_PERFTEST_GPL = 1u << 13,
- RADV_PERFTEST_NGG_STREAMOUT = 1u << 14,
- RADV_PERFTEST_VIDEO_DECODE = 1u << 15,
- RADV_PERFTEST_DMA_SHADERS = 1u << 16,
+ RADV_PERFTEST_RT_WAVE_64 = 1u << 11,
+ RADV_PERFTEST_GPL = 1u << 12,
+ RADV_PERFTEST_NGG_STREAMOUT = 1u << 13,
+ RADV_PERFTEST_VIDEO_DECODE = 1u << 14,
+ RADV_PERFTEST_DMA_SHADERS = 1u << 15,
};
bool radv_init_trace(struct radv_device *device);
{"rt", RADV_PERFTEST_RT},
{"nggc", RADV_PERFTEST_NGGC},
{"emulate_rt", RADV_PERFTEST_EMULATE_RT},
- {"nv_ms", RADV_PERFTEST_NV_MS},
{"rtwave64", RADV_PERFTEST_RT_WAVE_64},
{"gpl", RADV_PERFTEST_GPL},
{"ngg_streamout", RADV_PERFTEST_NGG_STREAMOUT},
.INTEL_shader_integer_functions2 = true,
.NV_compute_shader_derivatives = true,
.NV_device_generated_commands = radv_NV_device_generated_commands_enabled(device),
- .NV_mesh_shader =
- radv_taskmesh_enabled(device) && device->instance->perftest_flags & RADV_PERFTEST_NV_MS,
/* Undocumented extension purely for vkd3d-proton. This check is to prevent anyone else from
* using it.
*/
features->dynamicRendering = true;
break;
}
- case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
- VkPhysicalDeviceMeshShaderFeaturesNV *features =
- (VkPhysicalDeviceMeshShaderFeaturesNV *)ext;
- features->taskShader = features->meshShader = radv_taskmesh_enabled(pdevice);
- break;
- }
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
VkPhysicalDeviceMeshShaderFeaturesEXT *features =
(VkPhysicalDeviceMeshShaderFeaturesEXT *)ext;
properties->maxBufferSize = RADV_MAX_MEMORY_ALLOCATION_SIZE;
break;
}
- case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
- VkPhysicalDeviceMeshShaderPropertiesNV *properties =
- (VkPhysicalDeviceMeshShaderPropertiesNV *)ext;
-
- /* Task shader limitations:
- * Same as compute, because TS are compiled to CS.
- */
- properties->maxDrawMeshTasksCount = 65535;
- properties->maxTaskTotalMemorySize = 65536;
- properties->maxTaskWorkGroupInvocations = 1024;
- properties->maxTaskWorkGroupSize[0] = 1024;
- properties->maxTaskWorkGroupSize[1] = 1024;
- properties->maxTaskWorkGroupSize[2] = 1024;
- properties->maxTaskOutputCount = 65535;
-
- /* Mesh shader limitations:
- * Same as NGG, because MS are compiled to NGG.
- */
- properties->maxMeshMultiviewViewCount = MAX_VIEWS;
- properties->maxMeshOutputPrimitives = 256;
- properties->maxMeshOutputVertices = 256;
- properties->maxMeshTotalMemorySize = 31 * 1024; /* Reserve 1K for prim indices, etc. */
- properties->maxMeshWorkGroupInvocations = 256;
- properties->maxMeshWorkGroupSize[0] = 256;
- properties->maxMeshWorkGroupSize[1] = 256;
- properties->maxMeshWorkGroupSize[2] = 256;
- properties->meshOutputPerPrimitiveGranularity = 1;
- properties->meshOutputPerVertexGranularity = 1;
-
- break;
- }
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT *properties =
(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT *)ext;