aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--demos/cube.c6
-rw-r--r--demos/tri.c12
-rw-r--r--include/xgl.h9
-rw-r--r--layers/draw_state.c4
-rw-r--r--layers/mem_tracker.c4
-rw-r--r--xgl.py3
6 files changed, 22 insertions, 16 deletions
diff --git a/demos/cube.c b/demos/cube.c
index ad3ba5da..d6dec16c 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -507,7 +507,7 @@ static void demo_prepare_depth(struct demo *demo)
assert(!err);
/* bind memory */
- err = xglBindObjectMemory(demo->depth.image,
+ err = xglBindObjectMemory(demo->depth.image, 0,
demo->depth.mem, 0);
assert(!err);
@@ -762,7 +762,7 @@ static void demo_prepare_textures(struct demo *demo)
assert(!err);
/* bind memory */
- err = xglBindObjectMemory(demo->textures[i].image,
+ err = xglBindObjectMemory(demo->textures[i].image, 0,
demo->textures[i].mem, 0);
assert(!err);
@@ -860,7 +860,7 @@ void demo_prepare_cube_data_buffer(struct demo *demo)
err = xglUnmapMemory(demo->uniform_data.mem);
assert(!err);
- err = xglBindObjectMemory(demo->uniform_data.buf,
+ err = xglBindObjectMemory(demo->uniform_data.buf, 0,
demo->uniform_data.mem, 0);
assert(!err);
diff --git a/demos/tri.c b/demos/tri.c
index ee085dcb..5c16e53d 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -318,7 +318,7 @@ static void demo_prepare_depth(struct demo *demo)
assert(!err);
/* bind memory */
- err = xglBindObjectMemory(demo->depth.image,
+ err = xglBindObjectMemory(demo->depth.image, 0,
demo->depth.mem, 0);
assert(!err);
@@ -424,7 +424,7 @@ static void demo_prepare_textures(struct demo *demo)
assert(!err);
/* bind memory */
- err = xglBindObjectMemory(demo->textures[i].image,
+ err = xglBindObjectMemory(demo->textures[i].image, 0,
demo->textures[i].mem, 0);
assert(!err);
@@ -521,7 +521,7 @@ static void demo_prepare_vertices(struct demo *demo)
err = xglUnmapMemory(demo->vertices.mem);
assert(!err);
- err = xglBindObjectMemory(demo->vertices.buf, demo->vertices.mem, 0);
+ err = xglBindObjectMemory(demo->vertices.buf, 0, demo->vertices.mem, 0);
assert(!err);
demo->vertices.vi.sType = XGL_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO;
@@ -1037,20 +1037,20 @@ static void demo_cleanup(struct demo *demo)
xglDestroyObject(demo->pipeline);
xglDestroyObject(demo->desc_layout);
- xglBindObjectMemory(demo->vertices.buf, XGL_NULL_HANDLE, 0);
+ xglBindObjectMemory(demo->vertices.buf, 0, XGL_NULL_HANDLE, 0);
xglDestroyObject(demo->vertices.buf);
xglFreeMemory(demo->vertices.mem);
for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
xglDestroyObject(demo->textures[i].view);
- xglBindObjectMemory(demo->textures[i].image, XGL_NULL_HANDLE, 0);
+ xglBindObjectMemory(demo->textures[i].image, 0, XGL_NULL_HANDLE, 0);
xglDestroyObject(demo->textures[i].image);
xglFreeMemory(demo->textures[i].mem);
xglDestroyObject(demo->textures[i].sampler);
}
xglDestroyObject(demo->depth.view);
- xglBindObjectMemory(demo->depth.image, XGL_NULL_HANDLE, 0);
+ xglBindObjectMemory(demo->depth.image, 0, XGL_NULL_HANDLE, 0);
xglDestroyObject(demo->depth.image);
xglFreeMemory(demo->depth.mem);
diff --git a/include/xgl.h b/include/xgl.h
index c243b68a..f9e794be 100644
--- a/include/xgl.h
+++ b/include/xgl.h
@@ -2045,9 +2045,9 @@ typedef XGL_RESULT (XGLAPI *xglOpenPeerMemoryType)(XGL_DEVICE device, const XGL_
typedef XGL_RESULT (XGLAPI *xglOpenPeerImageType)(XGL_DEVICE device, const XGL_PEER_IMAGE_OPEN_INFO* pOpenInfo, XGL_IMAGE* pImage, XGL_GPU_MEMORY* pMem);
typedef XGL_RESULT (XGLAPI *xglDestroyObjectType)(XGL_OBJECT object);
typedef XGL_RESULT (XGLAPI *xglGetObjectInfoType)(XGL_BASE_OBJECT object, XGL_OBJECT_INFO_TYPE infoType, XGL_SIZE* pDataSize, XGL_VOID* pData);
-typedef XGL_RESULT (XGLAPI *xglBindObjectMemoryType)(XGL_OBJECT object, XGL_GPU_MEMORY mem, XGL_GPU_SIZE memOffset);
-typedef XGL_RESULT (XGLAPI *xglBindObjectMemoryRangeType)(XGL_OBJECT object, XGL_GPU_SIZE rangeOffset, XGL_GPU_SIZE rangeSize, XGL_GPU_MEMORY mem, XGL_GPU_SIZE memOffset);
-typedef XGL_RESULT (XGLAPI *xglBindImageMemoryRangeType)(XGL_IMAGE image, const XGL_IMAGE_MEMORY_BIND_INFO* bindInfo, XGL_GPU_MEMORY mem, XGL_GPU_SIZE memOffset);
+typedef XGL_RESULT (XGLAPI *xglBindObjectMemoryType)(XGL_OBJECT object, XGL_UINT allocationIdx, XGL_GPU_MEMORY mem, XGL_GPU_SIZE memOffset);
+typedef XGL_RESULT (XGLAPI *xglBindObjectMemoryRangeType)(XGL_OBJECT object, XGL_UINT allocationIdx, XGL_GPU_SIZE rangeOffset, XGL_GPU_SIZE rangeSize, XGL_GPU_MEMORY mem, XGL_GPU_SIZE memOffset);
+typedef XGL_RESULT (XGLAPI *xglBindImageMemoryRangeType)(XGL_IMAGE image, XGL_UINT allocationIdx, const XGL_IMAGE_MEMORY_BIND_INFO* bindInfo, XGL_GPU_MEMORY mem, XGL_GPU_SIZE memOffset);
typedef XGL_RESULT (XGLAPI *xglCreateFenceType)(XGL_DEVICE device, const XGL_FENCE_CREATE_INFO* pCreateInfo, XGL_FENCE* pFence);
typedef XGL_RESULT (XGLAPI *xglGetFenceStatusType)(XGL_FENCE fence);
typedef XGL_RESULT (XGLAPI *xglWaitForFencesType)(XGL_DEVICE device, XGL_UINT fenceCount, const XGL_FENCE* pFences, XGL_BOOL waitAll, XGL_UINT64 timeout);
@@ -2271,11 +2271,13 @@ XGL_RESULT XGLAPI xglGetObjectInfo(
XGL_RESULT XGLAPI xglBindObjectMemory(
XGL_OBJECT object,
+ XGL_UINT allocationIdx,
XGL_GPU_MEMORY mem,
XGL_GPU_SIZE memOffset);
XGL_RESULT XGLAPI xglBindObjectMemoryRange(
XGL_OBJECT object,
+ XGL_UINT allocationIdx,
XGL_GPU_SIZE rangeOffset,
XGL_GPU_SIZE rangeSize,
XGL_GPU_MEMORY mem,
@@ -2283,6 +2285,7 @@ XGL_RESULT XGLAPI xglBindObjectMemoryRange(
XGL_RESULT XGLAPI xglBindImageMemoryRange(
XGL_IMAGE image,
+ XGL_UINT allocationIdx,
const XGL_IMAGE_MEMORY_BIND_INFO* bindInfo,
XGL_GPU_MEMORY mem,
XGL_GPU_SIZE memOffset);
diff --git a/layers/draw_state.c b/layers/draw_state.c
index 4f936ce6..b871de48 100644
--- a/layers/draw_state.c
+++ b/layers/draw_state.c
@@ -1125,9 +1125,9 @@ XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglGetObjectInfo(XGL_BASE_OBJECT object, XGL_
return result;
}
-XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglBindObjectMemory(XGL_OBJECT object, XGL_GPU_MEMORY mem, XGL_GPU_SIZE offset)
+XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglBindObjectMemory(XGL_OBJECT object, XGL_UINT allocationIdx, XGL_GPU_MEMORY mem, XGL_GPU_SIZE offset)
{
- XGL_RESULT result = nextTable.BindObjectMemory(object, mem, offset);
+ XGL_RESULT result = nextTable.BindObjectMemory(object, allocationIdx, mem, offset);
return result;
}
diff --git a/layers/mem_tracker.c b/layers/mem_tracker.c
index d43ff536..3da0b438 100644
--- a/layers/mem_tracker.c
+++ b/layers/mem_tracker.c
@@ -1243,9 +1243,9 @@ XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglGetObjectInfo(XGL_BASE_OBJECT object, XGL_
return result;
}
-XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglBindObjectMemory(XGL_OBJECT object, XGL_GPU_MEMORY mem, XGL_GPU_SIZE offset)
+XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglBindObjectMemory(XGL_OBJECT object, XGL_UINT allocationIdx, XGL_GPU_MEMORY mem, XGL_GPU_SIZE offset)
{
- XGL_RESULT result = nextTable.BindObjectMemory(object, mem, offset);
+ XGL_RESULT result = nextTable.BindObjectMemory(object, allocationIdx, mem, offset);
// Track objects tied to memory
if (XGL_FALSE == updateObjectBinding(object, mem)) {
char str[1024];
diff --git a/xgl.py b/xgl.py
index 315f676b..653584a3 100644
--- a/xgl.py
+++ b/xgl.py
@@ -341,11 +341,13 @@ core = Extension(
Proto("XGL_RESULT", "BindObjectMemory",
[Param("XGL_OBJECT", "object"),
+ Param("XGL_UINT", "allocationIdx"),
Param("XGL_GPU_MEMORY", "mem"),
Param("XGL_GPU_SIZE", "memOffset")]),
Proto("XGL_RESULT", "BindObjectMemoryRange",
[Param("XGL_OBJECT", "object"),
+ Param("XGL_UINT", "allocationIdx"),
Param("XGL_GPU_SIZE", "rangeOffset"),
Param("XGL_GPU_SIZE", "rangeSize"),
Param("XGL_GPU_MEMORY", "mem"),
@@ -353,6 +355,7 @@ core = Extension(
Proto("XGL_RESULT", "BindImageMemoryRange",
[Param("XGL_IMAGE", "image"),
+ Param("XGL_UINT", "allocationIdx"),
Param("const XGL_IMAGE_MEMORY_BIND_INFO*", "bindInfo"),
Param("XGL_GPU_MEMORY", "mem"),
Param("XGL_GPU_SIZE", "memOffset")]),