anv: Add initial support for cube maps
[mesa.git] / src / vulkan / anv_gem.c
index 57b8505e156c48faf4552c909e1810aa57de6ec0..9d0d03320017d844ccbcbc2fca6e91f7b664db5e 100644 (file)
@@ -70,7 +70,7 @@ anv_gem_create(struct anv_device *device, size_t size)
 }
 
 void
-anv_gem_close(struct anv_device *device, int gem_handle)
+anv_gem_close(struct anv_device *device, uint32_t gem_handle)
 {
    struct drm_gem_close close;
 
@@ -84,7 +84,7 @@ anv_gem_close(struct anv_device *device, int gem_handle)
  */
 void*
 anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
-             uint64_t offset, uint64_t size)
+             uint64_t offset, uint64_t size, uint32_t flags)
 {
    struct drm_i915_gem_mmap gem_mmap;
    int ret;
@@ -94,10 +94,7 @@ anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
    gem_mmap.offset = offset;
    gem_mmap.size = size;
    VG_CLEAR(gem_mmap.addr_ptr);
-
-#ifdef I915_MMAP_WC
-   gem_mmap.flags = 0;
-#endif
+   gem_mmap.flags = flags;
 
    ret = anv_ioctl(device->fd, DRM_IOCTL_I915_GEM_MMAP, &gem_mmap);
    if (ret != 0) {
@@ -119,7 +116,7 @@ anv_gem_munmap(void *p, uint64_t size)
    munmap(p, size);
 }
 
-int
+uint32_t
 anv_gem_userptr(struct anv_device *device, void *mem, size_t size)
 {
    struct drm_i915_gem_userptr userptr;
@@ -138,7 +135,8 @@ anv_gem_userptr(struct anv_device *device, void *mem, size_t size)
 }
 
 int
-anv_gem_set_caching(struct anv_device *device, int gem_handle, uint32_t caching)
+anv_gem_set_caching(struct anv_device *device,
+                    uint32_t gem_handle, uint32_t caching)
 {
    struct drm_i915_gem_caching gem_caching;
 
@@ -150,7 +148,7 @@ anv_gem_set_caching(struct anv_device *device, int gem_handle, uint32_t caching)
 }
 
 int
-anv_gem_set_domain(struct anv_device *device, int gem_handle,
+anv_gem_set_domain(struct anv_device *device, uint32_t gem_handle,
                    uint32_t read_domains, uint32_t write_domain)
 {
    struct drm_i915_gem_set_domain gem_set_domain;
@@ -167,7 +165,7 @@ anv_gem_set_domain(struct anv_device *device, int gem_handle,
  * On error, \a timeout_ns holds the remaining time.
  */
 int
-anv_gem_wait(struct anv_device *device, int gem_handle, int64_t *timeout_ns)
+anv_gem_wait(struct anv_device *device, uint32_t gem_handle, int64_t *timeout_ns)
 {
    struct drm_i915_gem_wait wait;
    int ret;
@@ -192,7 +190,7 @@ anv_gem_execbuffer(struct anv_device *device,
 
 int
 anv_gem_set_tiling(struct anv_device *device,
-                   int gem_handle, uint32_t stride, uint32_t tiling)
+                   uint32_t gem_handle, uint32_t stride, uint32_t tiling)
 {
    struct drm_i915_gem_set_tiling set_tiling;
    int ret;
@@ -204,7 +202,7 @@ anv_gem_set_tiling(struct anv_device *device,
    do {
       VG_CLEAR(set_tiling);
       set_tiling.handle = gem_handle;
-      set_tiling.tiling_mode = I915_TILING_X;
+      set_tiling.tiling_mode = tiling;
       set_tiling.stride = stride;
 
       ret = ioctl(device->fd, DRM_IOCTL_I915_GEM_SET_TILING, &set_tiling);
@@ -272,7 +270,7 @@ anv_gem_get_aperture(int fd, uint64_t *size)
 }
 
 int
-anv_gem_handle_to_fd(struct anv_device *device, int gem_handle)
+anv_gem_handle_to_fd(struct anv_device *device, uint32_t gem_handle)
 {
    struct drm_prime_handle args;
    int ret;
@@ -288,7 +286,7 @@ anv_gem_handle_to_fd(struct anv_device *device, int gem_handle)
    return args.fd;
 }
 
-int
+uint32_t
 anv_gem_fd_to_handle(struct anv_device *device, int fd)
 {
    struct drm_prime_handle args;