#include "nvk_device_memory.h"
#include "nouveau_bo.h"
-#include "nouveau_push.h"
#include "vulkan/runtime/vk_buffer.h"
struct nvk_device_memory;
VK_DEFINE_HANDLE_CASTS(nvk_buffer, vk.base, VkBuffer, VK_OBJECT_TYPE_BUFFER)
-static void
-nvk_push_buffer_ref(struct nouveau_ws_push *push,
- const struct nvk_buffer *buffer,
- enum nouveau_ws_bo_map_flags flags)
-{
- nouveau_ws_push_ref(push, buffer->mem->bo, flags);
-}
-
static inline uint64_t
nvk_buffer_address(const struct nvk_buffer *buffer, uint64_t offset)
{
VK_FROM_HANDLE(nvk_buffer, src, pCopyBufferInfo->srcBuffer);
VK_FROM_HANDLE(nvk_buffer, dst, pCopyBufferInfo->dstBuffer);
- nvk_push_buffer_ref(cmd->push, src, NOUVEAU_WS_BO_RD);
- nvk_push_buffer_ref(cmd->push, dst, NOUVEAU_WS_BO_WR);
-
for (unsigned r = 0; r < pCopyBufferInfo->regionCount; r++) {
const VkBufferCopy2 *region = &pCopyBufferInfo->pRegions[r];
VK_FROM_HANDLE(nvk_buffer, src, pCopyBufferToImageInfo->srcBuffer);
VK_FROM_HANDLE(nvk_image, dst, pCopyBufferToImageInfo->dstImage);
- nvk_push_buffer_ref(cmd->push, src, NOUVEAU_WS_BO_RD);
- nvk_push_image_ref(cmd->push, dst, NOUVEAU_WS_BO_WR);
-
for (unsigned r = 0; r < pCopyBufferToImageInfo->regionCount; r++) {
const VkBufferImageCopy2 *region = &pCopyBufferToImageInfo->pRegions[r];
struct vk_image_buffer_layout buffer_layout =
VK_FROM_HANDLE(nvk_image, src, pCopyImageToBufferInfo->srcImage);
VK_FROM_HANDLE(nvk_buffer, dst, pCopyImageToBufferInfo->dstBuffer);
- nvk_push_image_ref(cmd->push, src, NOUVEAU_WS_BO_RD);
- nvk_push_buffer_ref(cmd->push, dst, NOUVEAU_WS_BO_WR);
-
for (unsigned r = 0; r < pCopyImageToBufferInfo->regionCount; r++) {
const VkBufferImageCopy2 *region = &pCopyImageToBufferInfo->pRegions[r];
struct vk_image_buffer_layout buffer_layout =
VK_FROM_HANDLE(nvk_image, src, pCopyImageInfo->srcImage);
VK_FROM_HANDLE(nvk_image, dst, pCopyImageInfo->dstImage);
- nvk_push_image_ref(cmd->push, src, NOUVEAU_WS_BO_RD);
- nvk_push_image_ref(cmd->push, dst, NOUVEAU_WS_BO_WR);
-
for (unsigned r = 0; r < pCopyImageInfo->regionCount; r++) {
const VkImageCopy2 *region = &pCopyImageInfo->pRegions[r];
VK_FROM_HANDLE(nvk_image, dst, image);
struct nouveau_ws_push *p = cmd->push;
- nvk_push_image_ref(p, dst, NOUVEAU_WS_BO_WR);
-
P_IMMD(p, NV902D, SET_OPERATION, V_SRCCOPY);
P_IMMD(p, NV902D, SET_CLIP_ENABLE, V_FALSE);
uint32_t pitch = 1 << 19;
uint32_t line = pitch / 4;
- nvk_push_buffer_ref(p, dst, NOUVEAU_WS_BO_WR);
-
P_IMMD(p, NV902D, SET_OPERATION, V_SRCCOPY);
P_MTHD(p, NV902D, SET_DST_FORMAT);
VkDeviceSize dst_addr = nvk_buffer_address(dst, 0);
- nvk_push_buffer_ref(p, dst, NOUVEAU_WS_BO_WR);
-
P_IMMD(p, NV902D, SET_OPERATION, V_SRCCOPY);
P_MTHD(p, NV902D, SET_DST_OFFSET_UPPER);
assert(render->samples == 0 || render->samples == image->vk.samples);
render->samples |= image->vk.samples;
- nvk_push_image_ref(cmd->push, image, NOUVEAU_WS_BO_WR);
uint64_t addr = nvk_image_base_address(image) + level->offset_B;
P_MTHD(p, NV9097, SET_COLOR_TARGET_A(i));
assert(render->samples == 0 || render->samples == image->vk.samples);
render->samples |= image->vk.samples;
- nvk_push_image_ref(cmd->push, image, NOUVEAU_WS_BO_WR);
uint64_t addr = nvk_image_base_address(image) + level->offset_B;
P_MTHD(p, NV9097, SET_ZT_A);