1/*
2 * Copyright © 2016 Red Hat.
3 * Copyright © 2016 Bas Nieuwenhuizen
4 * SPDX-License-Identifier: MIT
5 *
6 * based in part on anv driver which is:
7 * Copyright © 2015 Intel Corporation
8 */
9
10#ifndef TU_CLEAR_BLIT_H
11#define TU_CLEAR_BLIT_H
12
13#include "tu_common.h"
14
15void tu_init_clear_blit_shaders(struct tu_device *dev);
16
17void tu_destroy_clear_blit_shaders(struct tu_device *dev);
18
19void
20tu6_clear_lrz(struct tu_cmd_buffer *cmd, struct tu_cs *cs, struct tu_image* image, const VkClearValue *value);
21
22void
23tu6_dirty_lrz_fc(struct tu_cmd_buffer *cmd, struct tu_cs *cs, struct tu_image* image);
24
25void
26tu_resolve_sysmem(struct tu_cmd_buffer *cmd,
27                  struct tu_cs *cs,
28                  const struct tu_image_view *src,
29                  const struct tu_image_view *dst,
30                  uint32_t layer_mask,
31                  uint32_t layers,
32                  const VkRect2D *rect);
33
34void
35tu_clear_sysmem_attachment(struct tu_cmd_buffer *cmd,
36                           struct tu_cs *cs,
37                           uint32_t a,
38                           const VkClearValue *value);
39
40void
41tu_clear_gmem_attachment(struct tu_cmd_buffer *cmd,
42                         struct tu_cs *cs,
43                         uint32_t a,
44                         const VkClearValue *value);
45
46void
47tu_load_gmem_attachment(struct tu_cmd_buffer *cmd,
48                        struct tu_cs *cs,
49                        uint32_t a,
50                        bool cond_exec_allowed,
51                        bool force_load);
52
53/* note: gmem store can also resolve */
54void
55tu_store_gmem_attachment(struct tu_cmd_buffer *cmd,
56                         struct tu_cs *cs,
57                         uint32_t a,
58                         uint32_t gmem_a,
59                         bool cond_exec_allowed);
60
61void
62tu_choose_gmem_layout(struct tu_cmd_buffer *cmd);
63
64#endif /* TU_CLEAR_BLIT_H */
65