You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
for (uint jointIndex=gl_GlobalInvocationID.x; jointIndex<totalJointCount; jointIndex+=dispatchSize)
20
20
{
21
21
// TODO: implement via https://moderngpu.github.io/sortedsearch.html, find the upper and lower bounds of the workgroup, then go to town with sorted search
//! props.deviceTypeMask = ~IPhysicalDevice::ET_CPU; // would be good to turn the enum into a mask
38
+
//! props.driverIDMask = ~(EDI_AMD_PROPRIETARY|EDI_INTEL_PROPRIETARY_WINDOWS); // would be goot to turn the enum into a mask
39
+
//! props.conformanceVersion = 1.2;
40
+
//!
41
+
//! SDeviceFeatures requiredFeatures = {};
42
+
//! requiredFeatures.rayQuery = true;
43
+
//!
44
+
//! SDeviceLimits minimumLimits = {}; // would default initialize to worst possible values (small values for maximum sizes, large values for alignments, etc.)
45
+
//!
46
+
//! // TODO: later add some stuff for requiring queue families, formats and minimum memory heap sizes
47
+
//!
48
+
//! auto physicalDeviceCandidates = api->getCompatiblePhysicalDevices(props,requiredFeatures,minimumLimits,numSwapchains,supportedSwapchains,/*optional: would enforce tighter checks to actually accept compatibility, like formats, present modes and surface caps*/swapchainSupportDecider);
49
+
//! if (physicalDeviceCandidates.empty())
50
+
//! {
51
+
//! logError();
52
+
//! exit();
53
+
//! }
54
+
//!
55
+
//! // TODO: later iterate through candidate devices (fulfilling all the required criteria) to find the "best" one
// [DO NOT EXPOSE] Enables certain formats in Vulkan, we just enable them if available or else we need to make format support query functions in LogicalDevice as well
// [DO NOT EXPOSE] We will never expose this vendor specific meta-data (no new feature) to the user, but might use the extension to provide some cross platform meta-info in the Nabla section
384
-
/* ShaderCoreProperties2AMD *//* provided by VK_AMD_shader_core_properties2 */
/* ShaderCorePropertiesAMD *//* provided by VK_AMD_shader_core_properties */
388
-
//uint32_t shaderEngineCount;
389
-
//uint32_t shaderArraysPerEngineCount;
390
-
//uint32_t computeUnitsPerShaderArray;
391
-
//uint32_t simdPerComputeUnit;
392
-
//uint32_t wavefrontsPerSimd;
393
-
//uint32_t wavefrontSize;
394
-
//uint32_t sgprsPerSimd;
395
-
//uint32_t minSgprAllocation;
396
-
//uint32_t maxSgprAllocation;
397
-
//uint32_t sgprAllocationGranularity;
398
-
//uint32_t vgprsPerSimd;
399
-
//uint32_t minVgprAllocation;
400
-
//uint32_t maxVgprAllocation;
401
-
//uint32_t vgprAllocationGranularity;
402
-
403
384
// [DO NOT EXPOSE] right now, no idea if we'll ever expose and implement those but they'd all be false for OpenGL
404
385
/* BlendOperationAdvancedPropertiesEXT *//* provided by VK_EXT_blend_operation_advanced */
405
386
//uint32_t advancedBlendMaxColorAttachments;
@@ -553,6 +534,14 @@ struct SPhysicalDeviceLimits
553
534
//! uint32_t maxVertexInputAttributeOffset;
554
535
//! uint32_t maxVertexInputBindingStride;
555
536
537
+
/*
538
+
- Spec states minimum supported value should be at least ESCF_1_BIT
539
+
- it might be different for each integer format, best way is to query your integer format from physical device using vkGetPhysicalDeviceImageFormatProperties and get the sampleCounts
0 commit comments