VulkanRaytracingCycles 0.0.0
Cycles Render Engine With VulkanRaytracingShaderModules. ( Experiment , in progress)
Temperance Struct Reference

#include <CacheVk.h>

Public Member Functions

void init ()
 
void deviceLimit ()
 
void heapBudget ()
 

Public Attributes

VkPhysicalDeviceMemoryBudgetPropertiesEXT budget
 
struct {
   long   device
 
   long   visible
 
   long   devisible
 
heap
 
struct {
   long   memory
 
limits
 

Detailed Description

Definition at line 15 of file CacheVk.h.

Member Function Documentation

◆ deviceLimit()

void Temperance::deviceLimit ( )

Definition at line 34 of file CacheVk.cpp.

34 {
35 limits.memory = (long)$properties.limits.maxMemoryAllocationCount;
36};
struct Temperance::@10 limits

◆ heapBudget()

void Temperance::heapBudget ( )

Definition at line 38 of file CacheVk.cpp.

38 {
39
40
41 log_ctx(" heapCount %u \n", $memoryProperties.memoryHeapCount);
42 for (uint32_t i = 0; i < $memoryProperties.memoryHeapCount; i++) {
43 log_ctx(" flags %x size %zu \n", $memoryProperties.memoryHeaps[i].flags, $memoryProperties.memoryHeaps[i].size);
44 };
45
46 log_ctx(" heapTypeCount %u \n", $memoryProperties.memoryTypeCount);
47 for (uint32_t i = 0; i < $memoryProperties.memoryTypeCount; i++) {
48 log_ctx(" flags %x heapIdx %u \n", $memoryProperties.memoryTypes[i].propertyFlags, $memoryProperties.memoryTypes[i].heapIndex);
49 };
50
51
52 budget = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT };
53
54 VkPhysicalDeviceMemoryProperties2KHR memProps2 = {
55 .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR ,
56 .pNext = &budget
57 };
58
59 vkGetPhysicalDeviceMemoryProperties2($physicaldevice, &memProps2);
60
61 for (uint32_t heapIndex = 0; heapIndex < $memoryProperties.memoryHeapCount; heapIndex++)
62 {
63 log_ctx(" Heap[%u] usage %zu budget %zu \n", heapIndex, budget.heapUsage[heapIndex], budget.heapBudget[heapIndex]);
64 };
65
66 heap.device = (long)budget.heapBudget[0];
67 heap.visible = (long)budget.heapBudget[1];
68 heap.devisible = (long)budget.heapBudget[2];
69
70
71};
#define log_ctx(...)
Definition: Context1Vk.h:37
struct Temperance::@9 heap
VkPhysicalDeviceMemoryBudgetPropertiesEXT budget
Definition: CacheVk.h:17

◆ init()

void Temperance::init ( )

Definition at line 29 of file CacheVk.cpp.

29 {
31 heapBudget();
32};
void deviceLimit()
Definition: CacheVk.cpp:34
void heapBudget()
Definition: CacheVk.cpp:38

Member Data Documentation

◆ budget

VkPhysicalDeviceMemoryBudgetPropertiesEXT Temperance::budget

Definition at line 17 of file CacheVk.h.

◆ device

long Temperance::device

Definition at line 21 of file CacheVk.h.

◆ devisible

long Temperance::devisible

Definition at line 23 of file CacheVk.h.

◆ 

struct { ... } Temperance::heap

◆ 

struct { ... } Temperance::limits

◆ memory

long Temperance::memory

Definition at line 27 of file CacheVk.h.

◆ visible

long Temperance::visible

Definition at line 22 of file CacheVk.h.


The documentation for this struct was generated from the following files: