.allocationSize = 0,
.memProps = XGL_MEMORY_PROPERTY_GPU_ONLY,
.memType = XGL_MEMORY_TYPE_IMAGE,
- .heapCount = 0,
.memPriority = XGL_MEMORY_PRIORITY_NORMAL,
};
XGL_DEPTH_STENCIL_VIEW_CREATE_INFO view = {
img_alloc.samples = img_reqs.samples;
for (XGL_UINT i = 0; i < num_allocations; i ++) {
mem_alloc.allocationSize = mem_reqs[i].size;
- mem_alloc.heapCount = mem_reqs[i].heapCount;
- XGL_UINT heapInfo[mem_reqs[i].heapCount];
- mem_alloc.pHeaps = (const XGL_UINT *) heapInfo;
- memcpy(heapInfo, mem_reqs[i].pHeaps,
- sizeof(mem_reqs[i].pHeaps[0]) * mem_reqs[i].heapCount);
/* allocate memory */
err = xglAllocMemory(demo->device, &mem_alloc,
.allocationSize = 0,
.memProps = XGL_MEMORY_PROPERTY_GPU_ONLY,
.memType = XGL_MEMORY_TYPE_IMAGE,
- .heapCount = 0,
- .pHeaps = 0,
.memPriority = XGL_MEMORY_PRIORITY_NORMAL,
};
XGL_IMAGE_VIEW_CREATE_INFO view = {
img_alloc.samples = img_reqs.samples;
for (XGL_UINT j = 0; j < num_allocations; j ++) {
mem_alloc.allocationSize = mem_reqs[j].size;
- mem_alloc.heapCount = mem_reqs[j].heapCount;
- XGL_UINT heapInfo[mem_reqs[j].heapCount];
- mem_alloc.pHeaps = (const XGL_UINT *)heapInfo;
- memcpy(heapInfo, mem_reqs[j].pHeaps,
- sizeof(mem_reqs[j].pHeaps[0]) * mem_reqs[j].heapCount);
/* allocate memory */
err = xglAllocMemory(demo->device, &mem_alloc,
.allocationSize = 0,
.memProps = XGL_MEMORY_PROPERTY_CPU_VISIBLE_BIT,
.memType = XGL_MEMORY_TYPE_BUFFER,
- .heapCount = 0,
.memPriority = XGL_MEMORY_PRIORITY_NORMAL,
};
XGL_MEMORY_REQUIREMENTS *mem_reqs;
buf_alloc.usage = buf_reqs.usage;
for (XGL_UINT i = 0; i < num_allocations; i ++) {
alloc_info.allocationSize = mem_reqs[i].size;
- alloc_info.heapCount = mem_reqs[i].heapCount;
- XGL_UINT heapInfo[mem_reqs[i].heapCount];
- alloc_info.pHeaps = (const XGL_UINT *)heapInfo;
- memcpy(heapInfo, mem_reqs[i].pHeaps,
- sizeof(mem_reqs[i].pHeaps[0]) * mem_reqs[i].heapCount);
err = xglAllocMemory(demo->device, &alloc_info, &(demo->uniform_data.mem[i]));
assert(!err);
.allocationSize = 0,
.memProps = XGL_MEMORY_PROPERTY_GPU_ONLY,
.memType = XGL_MEMORY_TYPE_IMAGE,
- .heapCount = 0,
.memPriority = XGL_MEMORY_PRIORITY_NORMAL,
};
XGL_DEPTH_STENCIL_VIEW_CREATE_INFO view = {
img_alloc.samples = img_reqs.samples;
for (XGL_UINT i = 0; i < num_allocations; i ++) {
mem_alloc.allocationSize = mem_reqs[i].size;
- mem_alloc.heapCount = mem_reqs[i].heapCount;
- XGL_UINT heapInfo[mem_reqs[i].heapCount];
- mem_alloc.pHeaps = (const XGL_UINT *)heapInfo;
- memcpy(heapInfo, mem_reqs[i].pHeaps,
- sizeof(mem_reqs[i].pHeaps[0]) * mem_reqs[i].heapCount);
/* allocate memory */
err = xglAllocMemory(demo->device, &mem_alloc,
.allocationSize = 0,
.memProps = XGL_MEMORY_PROPERTY_GPU_ONLY,
.memType = XGL_MEMORY_TYPE_IMAGE,
- .heapCount = 0,
.memPriority = XGL_MEMORY_PRIORITY_NORMAL,
};
XGL_IMAGE_VIEW_CREATE_INFO view = {
img_alloc.samples = img_reqs.samples;
for (XGL_UINT j = 0; j < num_allocations; j ++) {
mem_alloc.allocationSize = mem_reqs[j].size;
- mem_alloc.heapCount = mem_reqs[j].heapCount;
- XGL_UINT heapInfo[mem_reqs[j].heapCount];
- mem_alloc.pHeaps = (const XGL_UINT *)heapInfo;
- memcpy(heapInfo, mem_reqs[j].pHeaps,
- sizeof(mem_reqs[j].pHeaps[0]) * mem_reqs[j].heapCount);
/* allocate memory */
err = xglAllocMemory(demo->device, &mem_alloc,
.allocationSize = 0,
.memProps = XGL_MEMORY_PROPERTY_CPU_VISIBLE_BIT,
.memType = XGL_MEMORY_TYPE_BUFFER,
- .heapCount = 0,
- .pHeaps = 0,
.memPriority = XGL_MEMORY_PRIORITY_NORMAL,
};
XGL_MEMORY_REQUIREMENTS *mem_reqs;
buf_alloc.usage = buf_reqs.usage;
for (XGL_UINT i = 0; i < num_allocations; i ++) {
mem_alloc.allocationSize = mem_reqs[i].size;
- mem_alloc.heapCount = mem_reqs[i].heapCount;
- mem_alloc.pHeaps = mem_reqs[i].pHeaps;
- memcpy((void *) mem_alloc.pHeaps, mem_reqs[i].pHeaps,
- sizeof(mem_reqs[i].pHeaps[0]) * mem_reqs[i].heapCount);
err = xglAllocMemory(demo->device, &mem_alloc, &demo->vertices.mem[i]);
assert(!err);
XGL_MEMORY_TYPE_OTHER = 0x00000000, // device memory that is not any of the others
XGL_MEMORY_TYPE_BUFFER = 0x00000001, // memory for buffers and associated information
XGL_MEMORY_TYPE_IMAGE = 0x00000002, // memory for images and associated information
- XGL_MEMORY_TYPE_PIPELINE = 0x00000003, // memory for pipeline objects
XGL_MAX_ENUM(_XGL_MEMORY_TYPE)
} XGL_MEMORY_TYPE;
XGL_BUFFER_VIEW_TYPED = 0x00000001, // Typed buffer, format and channels are used (TBO, image buffer)
XGL_BUFFER_VIEW_STRUCTURED = 0x00000002, // Structured buffer, stride is used (VBO, DX-style structured buffer)
- XGL_BUFFER_VIEW_TYPE_BEGIN_RANGE = XGL_BUFFER_VIEW_RAW,
- XGL_BUFFER_VIEW_TYPE_END_RANGE = XGL_BUFFER_VIEW_STRUCTURED,
- XGL_NUM_BUFFER_VIEW_TYPE = (XGL_BUFFER_VIEW_TYPE_END_RANGE - XGL_BUFFER_VIEW_TYPE_BEGIN_RANGE + 1),
+ XGL_BUFFER_VIEW_TYPE_BEGIN_RANGE = XGL_BUFFER_VIEW_RAW,
+ XGL_BUFFER_VIEW_TYPE_END_RANGE = XGL_BUFFER_VIEW_STRUCTURED,
+ XGL_NUM_BUFFER_VIEW_TYPE = (XGL_BUFFER_VIEW_TYPE_END_RANGE - XGL_BUFFER_VIEW_TYPE_BEGIN_RANGE + 1),
XGL_MAX_ENUM(_XGL_BUFFER_VIEW_TYPE)
} XGL_BUFFER_VIEW_TYPE;
XGL_STRUCTURE_TYPE sType; // Must be XGL_STRUCTURE_TYPE_MEMORY_ALLOC_INFO
XGL_VOID* pNext; // Pointer to next structure
XGL_GPU_SIZE allocationSize; // Size of memory allocation
- XGL_UINT heapCount;
- const XGL_UINT* pHeaps;
- XGL_MEMORY_PRIORITY memPriority;
XGL_FLAGS memProps; // XGL_MEMORY_PROPERTY_FLAGS
XGL_MEMORY_TYPE memType;
+ XGL_MEMORY_PRIORITY memPriority;
} XGL_MEMORY_ALLOC_INFO;
// This structure is included in the XGL_MEMORY_ALLOC_INFO chain
XGL_GPU_SIZE size; // Specified in bytes
XGL_GPU_SIZE alignment; // Specified in bytes
XGL_GPU_SIZE granularity; // Granularity on which xglBindObjectMemoryRange can bind sub-ranges of memory specified in bytes (usually the page size)
- XGL_UINT heapCount;
- XGL_UINT* pHeaps;
XGL_FLAGS memProps; // XGL_MEMORY_PROPERTY_FLAGS
XGL_MEMORY_TYPE memType;
} XGL_MEMORY_REQUIREMENTS;