mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
freedreno/fdl: Add STRUCTSIZETEXELS arg
Turnip needs this for accel structures. Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39141>
This commit is contained in:
parent
6db51151b5
commit
34944f85cd
3 changed files with 9 additions and 5 deletions
|
|
@ -537,7 +537,8 @@ FD_GENX(fdl6_view_init);
|
|||
template <chip CHIP>
|
||||
void
|
||||
fdl6_buffer_view_init(uint32_t *descriptor, enum pipe_format format,
|
||||
const uint8_t *swiz, uint64_t iova, uint32_t size)
|
||||
const uint8_t *swiz, uint64_t iova, uint32_t size,
|
||||
uint32_t struct_size_texels)
|
||||
{
|
||||
unsigned elem_size = util_format_get_blocksize(format);
|
||||
unsigned elements = size / elem_size;
|
||||
|
|
@ -561,7 +562,7 @@ fdl6_buffer_view_init(uint32_t *descriptor, enum pipe_format format,
|
|||
COND(util_format_is_srgb(format), A6XX_TEX_CONST_0_SRGB);
|
||||
descriptor[1] = A6XX_TEX_CONST_1_WIDTH(elements & ((1 << 15) - 1)) |
|
||||
A6XX_TEX_CONST_1_HEIGHT(elements >> 15);
|
||||
descriptor[2] = A6XX_TEX_CONST_2_STRUCTSIZETEXELS(1) |
|
||||
descriptor[2] = A6XX_TEX_CONST_2_STRUCTSIZETEXELS(struct_size_texels) |
|
||||
A6XX_TEX_CONST_2_STARTOFFSETTEXELS(texel_offset) |
|
||||
A6XX_TEX_CONST_2_TYPE(A6XX_TEX_BUFFER);
|
||||
descriptor[4] = base_iova;
|
||||
|
|
@ -570,7 +571,7 @@ fdl6_buffer_view_init(uint32_t *descriptor, enum pipe_format format,
|
|||
descriptor[0] = A8XX_TEX_MEMOBJ_0_INSTANCE_DESC_BASE_LO(iova);
|
||||
descriptor[1] = A8XX_TEX_MEMOBJ_1_BASE_HI(iova >> 32) |
|
||||
A8XX_TEX_MEMOBJ_1_TYPE(A6XX_TEX_BUFFER) |
|
||||
A8XX_TEX_MEMOBJ_1_STRUCTSIZETEXELS(1);
|
||||
A8XX_TEX_MEMOBJ_1_STRUCTSIZETEXELS(struct_size_texels);
|
||||
descriptor[2] = A8XX_TEX_MEMOBJ_2_WIDTH(elements & ((1 << 15) - 1)) |
|
||||
A8XX_TEX_MEMOBJ_2_HEIGHT(elements >> 15) |
|
||||
A8XX_TEX_MEMOBJ_2_SAMPLES(MSAA_ONE);
|
||||
|
|
|
|||
|
|
@ -475,7 +475,8 @@ fdl6_view_init(struct fdl6_view *view, const struct fdl_layout **layouts,
|
|||
template <chip CHIP>
|
||||
void
|
||||
fdl6_buffer_view_init(uint32_t *descriptor, enum pipe_format format,
|
||||
const uint8_t *swiz, uint64_t iova, uint32_t size);
|
||||
const uint8_t *swiz, uint64_t iova, uint32_t size,
|
||||
uint32_t struct_size_texels = 1);
|
||||
#endif
|
||||
|
||||
#endif /* FREEDRENO_LAYOUT_H_ */
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include "tu_device.h"
|
||||
#include "tu_formats.h"
|
||||
|
||||
template <chip CHIP>
|
||||
VKAPI_ATTR VkResult VKAPI_CALL
|
||||
tu_CreateBufferView(VkDevice _device,
|
||||
const VkBufferViewCreateInfo *pCreateInfo,
|
||||
|
|
@ -28,7 +29,7 @@ tu_CreateBufferView(VkDevice _device,
|
|||
uint8_t swiz[4] = { PIPE_SWIZZLE_X, PIPE_SWIZZLE_Y, PIPE_SWIZZLE_Z,
|
||||
PIPE_SWIZZLE_W };
|
||||
|
||||
TU_CALLX(device, fdl6_buffer_view_init)(
|
||||
fdl6_buffer_view_init<CHIP>(
|
||||
view->descriptor, vk_format_to_pipe_format(view->vk.format),
|
||||
swiz, vk_buffer_address(&buffer->vk, view->vk.offset), view->vk.range);
|
||||
|
||||
|
|
@ -36,6 +37,7 @@ tu_CreateBufferView(VkDevice _device,
|
|||
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
TU_GENX(tu_CreateBufferView);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
tu_DestroyBufferView(VkDevice _device,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue