Browse Source

expose timestamp_period and timestamp_valid_bits

tags/20190611
nihuini 7 years ago
parent
commit
8e2fb2e710
2 changed files with 17 additions and 8 deletions
  1. +13
    -8
      src/gpu.cpp
  2. +4
    -0
      src/gpu.h

+ 13
- 8
src/gpu.cpp View File

@@ -530,6 +530,8 @@ int create_gpu_instance()
gpu_info.memory_map_alignment = physicalDeviceProperties.limits.minMemoryMapAlignment;
gpu_info.buffer_offset_alignment = physicalDeviceProperties.limits.minStorageBufferOffsetAlignment;

gpu_info.timestamp_period = physicalDeviceProperties.limits.timestampPeriod;

// fprintf(stderr, "[%u] max_shared_memory_size = %u\n", i, gpu_info.max_shared_memory_size);
// fprintf(stderr, "[%u] max_workgroup_count = %u %u %u\n", i, gpu_info.max_workgroup_count[0], gpu_info.max_workgroup_count[1], gpu_info.max_workgroup_count[2]);
// fprintf(stderr, "[%u] max_workgroup_invocations = %u\n", i, gpu_info.max_workgroup_invocations);
@@ -550,6 +552,9 @@ int create_gpu_instance()
gpu_info.compute_queue_count = queueFamilyProperties[gpu_info.compute_queue_family_index].queueCount;
gpu_info.transfer_queue_count = queueFamilyProperties[gpu_info.transfer_queue_family_index].queueCount;

// compute queue
gpu_info.timestamp_valid_bits = queueFamilyProperties[gpu_info.compute_queue_family_index].timestampValidBits;

// find memory type index
VkPhysicalDeviceMemoryProperties physicalDeviceMemoryProperties;
vkGetPhysicalDeviceMemoryProperties(physicalDevice, &physicalDeviceMemoryProperties);
@@ -683,14 +688,14 @@ int create_gpu_instance()

vkGetPhysicalDeviceFeatures2KHR(physicalDevice, &queryFeatures);

// if (gpu_info.support_VK_KHR_8bit_storage)
// {
// gpu_info.support_int8_storage = query8BitStorageFeatures.storageBuffer8BitAccess && query8BitStorageFeatures.uniformAndStorageBuffer8BitAccess;
// }
// if (gpu_info.support_VK_KHR_16bit_storage)
// {
// gpu_info.support_fp16_storage = query16BitStorageFeatures.storageBuffer16BitAccess && query16BitStorageFeatures.uniformAndStorageBuffer16BitAccess;
// }
if (gpu_info.support_VK_KHR_8bit_storage)
{
gpu_info.support_int8_storage = query8BitStorageFeatures.storageBuffer8BitAccess && query8BitStorageFeatures.uniformAndStorageBuffer8BitAccess;
}
if (gpu_info.support_VK_KHR_16bit_storage)
{
gpu_info.support_fp16_storage = query16BitStorageFeatures.storageBuffer16BitAccess && query16BitStorageFeatures.uniformAndStorageBuffer16BitAccess;
}
// if (gpu_info.support_VK_KHR_shader_float16_int8)
// {
// gpu_info.support_fp16_arithmetic = queryFloat16Int8Features.shaderFloat16;


+ 4
- 0
src/gpu.h View File

@@ -71,6 +71,7 @@ public:
uint32_t max_workgroup_size[3];
size_t memory_map_alignment;
size_t buffer_offset_alignment;
float timestamp_period;

// runtime
uint32_t compute_queue_family_index;
@@ -79,6 +80,9 @@ public:
uint32_t compute_queue_count;
uint32_t transfer_queue_count;

// compute queue only
uint32_t timestamp_valid_bits;

uint32_t unified_memory_index;
uint32_t device_local_memory_index;
uint32_t host_visible_memory_index;


Loading…
Cancel
Save