pvr: make some winsys files multi-arch
Acked-by: Frank Binns <frank.binns@imgtec.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38922>
This commit is contained in:
@@ -17,8 +17,6 @@ pvr_entrypoints = custom_target(
|
||||
)
|
||||
|
||||
pvr_files = files(
|
||||
'winsys/powervr/pvr_arch_drm_job_compute.c',
|
||||
'winsys/powervr/pvr_arch_drm_job_render.c',
|
||||
'winsys/powervr/pvr_drm.c',
|
||||
'winsys/powervr/pvr_drm_bo.c',
|
||||
'winsys/powervr/pvr_drm_job_compute.c',
|
||||
@@ -67,25 +65,6 @@ pvr_flags = [
|
||||
no_override_init_args,
|
||||
]
|
||||
|
||||
if with_imagination_srv
|
||||
pvr_files += files(
|
||||
'winsys/pvrsrvkm/pvr_arch_srv_job_compute.c',
|
||||
'winsys/pvrsrvkm/pvr_arch_srv_job_render.c',
|
||||
'winsys/pvrsrvkm/pvr_arch_srv_job_transfer.c',
|
||||
'winsys/pvrsrvkm/pvr_srv.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_bo.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_bridge.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_common.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_compute.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_null.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_render.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_transfer.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_sync.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_sync_prim.c',
|
||||
)
|
||||
pvr_flags += '-DPVR_SUPPORT_SERVICES_DRIVER'
|
||||
endif
|
||||
|
||||
common_per_arch_files = [
|
||||
pvr_entrypoints[0],
|
||||
sha1_h,
|
||||
@@ -115,8 +94,31 @@ common_per_arch_files += files(
|
||||
'pvr_arch_sampler.c',
|
||||
'pvr_arch_spm.c',
|
||||
'pvr_arch_tex_state.c',
|
||||
'winsys/powervr/pvr_arch_drm_job_compute.c',
|
||||
'winsys/powervr/pvr_arch_drm_job_render.c',
|
||||
)
|
||||
|
||||
if with_imagination_srv
|
||||
pvr_files += files(
|
||||
'winsys/pvrsrvkm/pvr_srv.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_bo.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_bridge.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_common.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_compute.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_null.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_render.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_job_transfer.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_sync.c',
|
||||
'winsys/pvrsrvkm/pvr_srv_sync_prim.c',
|
||||
)
|
||||
common_per_arch_files += files(
|
||||
'winsys/pvrsrvkm/pvr_arch_srv_job_compute.c',
|
||||
'winsys/pvrsrvkm/pvr_arch_srv_job_render.c',
|
||||
'winsys/pvrsrvkm/pvr_arch_srv_job_transfer.c',
|
||||
)
|
||||
pvr_flags += '-DPVR_SUPPORT_SERVICES_DRIVER'
|
||||
endif
|
||||
|
||||
rogue_files = files(
|
||||
'rogue/pvr_blit.c',
|
||||
'rogue/pvr_clear.c',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#include "pvr_csb.h"
|
||||
|
||||
void pvr_drm_compute_ctx_static_state_init(
|
||||
void PVR_PER_ARCH(drm_compute_ctx_static_state_init)(
|
||||
const struct pvr_winsys_compute_ctx_create_info *create_info,
|
||||
uint8_t *stream_ptr_start,
|
||||
uint32_t *stream_len_ptr)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#include "pvr_csb.h"
|
||||
|
||||
void pvr_drm_render_ctx_static_state_init(
|
||||
void PVR_PER_ARCH(drm_render_ctx_static_state_init)(
|
||||
struct pvr_winsys_render_ctx_create_info *create_info,
|
||||
uint8_t *stream_ptr_start,
|
||||
uint32_t *stream_len_ptr)
|
||||
|
||||
@@ -44,6 +44,14 @@ struct pvr_drm_winsys_compute_ctx {
|
||||
#define to_pvr_drm_winsys_compute_ctx(ctx) \
|
||||
container_of(ctx, struct pvr_drm_winsys_compute_ctx, base)
|
||||
|
||||
#define PER_ARCH_FUNCS(arch) \
|
||||
void pvr_##arch##_drm_compute_ctx_static_state_init( \
|
||||
const struct pvr_winsys_compute_ctx_create_info *create_info, \
|
||||
uint8_t *stream_ptr_start, \
|
||||
uint32_t *stream_len_ptr);
|
||||
|
||||
PER_ARCH_FUNCS(rogue);
|
||||
|
||||
VkResult pvr_drm_winsys_compute_ctx_create(
|
||||
struct pvr_winsys *ws,
|
||||
const struct pvr_winsys_compute_ctx_create_info *create_info,
|
||||
@@ -72,9 +80,12 @@ VkResult pvr_drm_winsys_compute_ctx_create(
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
pvr_drm_compute_ctx_static_state_init(create_info,
|
||||
static_ctx_state_fw_stream,
|
||||
&ctx_args.static_context_state_len);
|
||||
enum pvr_device_arch arch = dev_info->ident.arch;
|
||||
PVR_ARCH_DISPATCH(drm_compute_ctx_static_state_init,
|
||||
arch,
|
||||
create_info,
|
||||
static_ctx_state_fw_stream,
|
||||
&ctx_args.static_context_state_len);
|
||||
|
||||
result = pvr_ioctlf(ws->render_fd,
|
||||
DRM_IOCTL_PVR_CREATE_CONTEXT,
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
#include "pvr_macros.h"
|
||||
|
||||
struct pvr_device_info;
|
||||
struct pvr_winsys;
|
||||
struct pvr_winsys_compute_ctx;
|
||||
@@ -50,9 +52,11 @@ VkResult pvr_drm_winsys_compute_submit(
|
||||
const struct pvr_device_info *dev_info,
|
||||
struct vk_sync *signal_sync);
|
||||
|
||||
void pvr_drm_compute_ctx_static_state_init(
|
||||
#ifdef PVR_PER_ARCH
|
||||
void PVR_PER_ARCH(drm_compute_ctx_static_state_init)(
|
||||
const struct pvr_winsys_compute_ctx_create_info *create_info,
|
||||
uint8_t *stream_ptr_start,
|
||||
uint32_t *stream_len_ptr);
|
||||
#endif
|
||||
|
||||
#endif /* PVR_DRM_JOB_COMPUTE_H */
|
||||
|
||||
@@ -155,6 +155,14 @@ struct pvr_drm_winsys_render_ctx {
|
||||
#define to_pvr_drm_winsys_render_ctx(ctx) \
|
||||
container_of(ctx, struct pvr_drm_winsys_render_ctx, base)
|
||||
|
||||
#define PER_ARCH_FUNCS(arch) \
|
||||
void pvr_##arch##_drm_render_ctx_static_state_init( \
|
||||
struct pvr_winsys_render_ctx_create_info *create_info, \
|
||||
uint8_t *stream_ptr_start, \
|
||||
uint32_t *stream_len_ptr)
|
||||
|
||||
PER_ARCH_FUNCS(rogue);
|
||||
|
||||
VkResult pvr_drm_winsys_render_ctx_create(
|
||||
struct pvr_winsys *ws,
|
||||
struct pvr_winsys_render_ctx_create_info *create_info,
|
||||
@@ -194,9 +202,12 @@ VkResult pvr_drm_winsys_render_ctx_create(
|
||||
goto err_free_ctx;
|
||||
}
|
||||
|
||||
pvr_drm_render_ctx_static_state_init(create_info,
|
||||
static_ctx_state_fw_stream,
|
||||
&ctx_args.static_context_state_len);
|
||||
enum pvr_device_arch arch = dev_info->ident.arch;
|
||||
PVR_ARCH_DISPATCH(drm_render_ctx_static_state_init,
|
||||
arch,
|
||||
create_info,
|
||||
static_ctx_state_fw_stream,
|
||||
&ctx_args.static_context_state_len);
|
||||
|
||||
result = pvr_ioctlf(ws->render_fd,
|
||||
DRM_IOCTL_PVR_CREATE_CONTEXT,
|
||||
|
||||
@@ -77,9 +77,11 @@ VkResult pvr_drm_winsys_render_submit(
|
||||
struct vk_sync *signal_sync_geom,
|
||||
struct vk_sync *signal_sync_frag);
|
||||
|
||||
void pvr_drm_render_ctx_static_state_init(
|
||||
#ifdef PVR_PER_ARCH
|
||||
void PVR_PER_ARCH(drm_render_ctx_static_state_init)(
|
||||
struct pvr_winsys_render_ctx_create_info *create_info,
|
||||
uint8_t *stream_ptr_start,
|
||||
uint32_t *stream_len_ptr);
|
||||
#endif
|
||||
|
||||
#endif /* PVR_DRM_JOB_RENDER_H */
|
||||
|
||||
@@ -104,7 +104,7 @@ static void pvr_srv_compute_cmd_ext_stream_load(
|
||||
assert((const uint8_t *)ext_stream_ptr - stream == stream_len);
|
||||
}
|
||||
|
||||
void pvr_srv_compute_cmd_init(
|
||||
void PVR_PER_ARCH(srv_compute_cmd_init)(
|
||||
const struct pvr_winsys_compute_submit_info *submit_info,
|
||||
struct rogue_fwif_cmd_compute *cmd,
|
||||
const struct pvr_device_info *const dev_info)
|
||||
|
||||
@@ -299,7 +299,7 @@ static void pvr_rogue_ct_te_init(const struct pvr_device_info *dev_info,
|
||||
te_regs->mtile_stride = mtile_info->mtile_x1 * mtile_info->mtile_y1;
|
||||
}
|
||||
|
||||
VkResult pvr_srv_render_target_dataset_create(
|
||||
VkResult PVR_PER_ARCH(srv_render_target_dataset_create)(
|
||||
struct pvr_winsys *ws,
|
||||
const struct pvr_winsys_rt_dataset_create_info *create_info,
|
||||
const struct pvr_device_info *dev_info,
|
||||
@@ -523,7 +523,7 @@ static void pvr_srv_geometry_cmd_ext_stream_load(
|
||||
assert((const uint8_t *)ext_stream_ptr - stream == stream_len);
|
||||
}
|
||||
|
||||
void pvr_srv_geometry_cmd_init(
|
||||
void PVR_PER_ARCH(srv_geometry_cmd_init)(
|
||||
const struct pvr_winsys_render_submit_info *submit_info,
|
||||
const struct pvr_srv_sync_prim *sync_prim,
|
||||
struct rogue_fwif_cmd_ta *cmd,
|
||||
@@ -706,10 +706,11 @@ static void pvr_srv_fragment_cmd_ext_stream_load(
|
||||
assert((const uint8_t *)ext_stream_ptr - stream == stream_len);
|
||||
}
|
||||
|
||||
void pvr_srv_fragment_cmd_init(struct rogue_fwif_cmd_3d *cmd,
|
||||
const struct pvr_winsys_fragment_state *state,
|
||||
const struct pvr_device_info *dev_info,
|
||||
uint32_t frame_num)
|
||||
void PVR_PER_ARCH(srv_fragment_cmd_init)(
|
||||
struct rogue_fwif_cmd_3d *cmd,
|
||||
const struct pvr_winsys_fragment_state *state,
|
||||
const struct pvr_device_info *dev_info,
|
||||
uint32_t frame_num)
|
||||
{
|
||||
uint32_t ext_stream_offset;
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "pvr_csb.h"
|
||||
#include "pvr_device_info.h"
|
||||
|
||||
void pvr_srv_transfer_cmd_stream_load(
|
||||
void PVR_PER_ARCH(srv_transfer_cmd_stream_load)(
|
||||
struct rogue_fwif_cmd_transfer *const cmd,
|
||||
const uint8_t *const stream,
|
||||
const uint32_t stream_len,
|
||||
|
||||
@@ -139,6 +139,14 @@ void pvr_srv_winsys_compute_ctx_destroy(struct pvr_winsys_compute_ctx *ctx)
|
||||
vk_free(srv_ws->base.alloc, srv_ctx);
|
||||
}
|
||||
|
||||
#define PER_ARCH_FUNCS(arch) \
|
||||
void pvr_##arch##_srv_compute_cmd_init( \
|
||||
const struct pvr_winsys_compute_submit_info *submit_info, \
|
||||
struct rogue_fwif_cmd_compute *cmd, \
|
||||
const struct pvr_device_info *const dev_info)
|
||||
|
||||
PER_ARCH_FUNCS(rogue);
|
||||
|
||||
VkResult pvr_srv_winsys_compute_submit(
|
||||
const struct pvr_winsys_compute_ctx *ctx,
|
||||
const struct pvr_winsys_compute_submit_info *submit_info,
|
||||
@@ -154,7 +162,12 @@ VkResult pvr_srv_winsys_compute_submit(
|
||||
int in_fd = -1;
|
||||
int fence;
|
||||
|
||||
pvr_srv_compute_cmd_init(submit_info, &compute_cmd, dev_info);
|
||||
enum pvr_device_arch arch = dev_info->ident.arch;
|
||||
PVR_ARCH_DISPATCH(srv_compute_cmd_init,
|
||||
arch,
|
||||
submit_info,
|
||||
&compute_cmd,
|
||||
dev_info);
|
||||
|
||||
if (submit_info->wait) {
|
||||
struct pvr_srv_sync *srv_wait_sync = to_srv_sync(submit_info->wait);
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
#include "pvr_macros.h"
|
||||
|
||||
struct rogue_fwif_cmd_compute;
|
||||
struct pvr_device_info;
|
||||
struct pvr_winsys;
|
||||
@@ -51,9 +53,11 @@ VkResult pvr_srv_winsys_compute_submit(
|
||||
const struct pvr_device_info *dev_info,
|
||||
struct vk_sync *signal_sync);
|
||||
|
||||
void pvr_srv_compute_cmd_init(
|
||||
#ifdef PVR_PER_ARCH
|
||||
void PVR_PER_ARCH(srv_compute_cmd_init)(
|
||||
const struct pvr_winsys_compute_submit_info *submit_info,
|
||||
struct rogue_fwif_cmd_compute *cmd,
|
||||
const struct pvr_device_info *const dev_info);
|
||||
#endif
|
||||
|
||||
#endif /* PVR_SRV_JOB_COMPUTE_H */
|
||||
|
||||
@@ -166,6 +166,45 @@ void pvr_srv_winsys_free_list_destroy(struct pvr_winsys_free_list *free_list)
|
||||
vk_free(srv_ws->base.alloc, srv_free_list);
|
||||
}
|
||||
|
||||
#define PER_ARCH_FUNCS(arch) \
|
||||
VkResult pvr_##arch##_srv_render_target_dataset_create( \
|
||||
struct pvr_winsys *ws, \
|
||||
const struct pvr_winsys_rt_dataset_create_info *create_info, \
|
||||
const struct pvr_device_info *dev_info, \
|
||||
struct pvr_winsys_rt_dataset **const rt_dataset_out); \
|
||||
\
|
||||
void pvr_##arch##_srv_fragment_cmd_init( \
|
||||
struct rogue_fwif_cmd_3d *cmd, \
|
||||
const struct pvr_winsys_fragment_state *state, \
|
||||
const struct pvr_device_info *dev_info, \
|
||||
uint32_t frame_num); \
|
||||
\
|
||||
void pvr_##arch##_srv_geometry_cmd_init( \
|
||||
const struct pvr_winsys_render_submit_info *submit_info, \
|
||||
const struct pvr_srv_sync_prim *sync_prim, \
|
||||
struct rogue_fwif_cmd_ta *cmd, \
|
||||
const struct pvr_device_info *const dev_info)
|
||||
|
||||
PER_ARCH_FUNCS(rogue);
|
||||
|
||||
VkResult pvr_srv_render_target_dataset_create(
|
||||
struct pvr_winsys *ws,
|
||||
const struct pvr_winsys_rt_dataset_create_info *create_info,
|
||||
const struct pvr_device_info *dev_info,
|
||||
struct pvr_winsys_rt_dataset **const rt_dataset_out)
|
||||
{
|
||||
VkResult result = VK_SUCCESS;
|
||||
enum pvr_device_arch arch = dev_info->ident.arch;
|
||||
PVR_ARCH_DISPATCH_RET(srv_render_target_dataset_create,
|
||||
arch,
|
||||
result,
|
||||
ws,
|
||||
create_info,
|
||||
dev_info,
|
||||
rt_dataset_out);
|
||||
return result;
|
||||
}
|
||||
|
||||
void pvr_srv_render_target_dataset_destroy(
|
||||
struct pvr_winsys_rt_dataset *rt_dataset)
|
||||
{
|
||||
@@ -341,19 +380,28 @@ VkResult pvr_srv_winsys_render_submit(
|
||||
int fence_geom;
|
||||
|
||||
VkResult result;
|
||||
enum pvr_device_arch arch = dev_info->ident.arch;
|
||||
PVR_ARCH_DISPATCH(srv_geometry_cmd_init,
|
||||
arch,
|
||||
submit_info,
|
||||
sync_prim,
|
||||
&geom_cmd,
|
||||
dev_info);
|
||||
|
||||
pvr_srv_geometry_cmd_init(submit_info, sync_prim, &geom_cmd, dev_info);
|
||||
|
||||
pvr_srv_fragment_cmd_init(&pr_cmd,
|
||||
&submit_info->fragment_pr,
|
||||
dev_info,
|
||||
submit_info->frame_num);
|
||||
PVR_ARCH_DISPATCH(srv_fragment_cmd_init,
|
||||
arch,
|
||||
&pr_cmd,
|
||||
&submit_info->fragment_pr,
|
||||
dev_info,
|
||||
submit_info->frame_num);
|
||||
|
||||
if (submit_info->has_fragment_job) {
|
||||
pvr_srv_fragment_cmd_init(&frag_cmd,
|
||||
&submit_info->fragment,
|
||||
dev_info,
|
||||
submit_info->frame_num);
|
||||
PVR_ARCH_DISPATCH(srv_fragment_cmd_init,
|
||||
arch,
|
||||
&frag_cmd,
|
||||
&submit_info->fragment,
|
||||
dev_info,
|
||||
submit_info->frame_num);
|
||||
|
||||
frag_cmd_ptr = (uint8_t *)&frag_cmd;
|
||||
frag_cmd_size = sizeof(frag_cmd);
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
#include <stdint.h>
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
#include "pvr_macros.h"
|
||||
|
||||
struct rogue_fwif_cmd_3d;
|
||||
struct rogue_fwif_cmd_ta;
|
||||
struct pvr_device_info;
|
||||
@@ -62,6 +64,7 @@ VkResult pvr_srv_render_target_dataset_create(
|
||||
const struct pvr_winsys_rt_dataset_create_info *create_info,
|
||||
const struct pvr_device_info *dev_info,
|
||||
struct pvr_winsys_rt_dataset **const rt_dataset_out);
|
||||
|
||||
void pvr_srv_render_target_dataset_destroy(
|
||||
struct pvr_winsys_rt_dataset *rt_dataset);
|
||||
|
||||
@@ -79,21 +82,24 @@ VkResult pvr_srv_winsys_render_submit(
|
||||
struct vk_sync *signal_sync_geom,
|
||||
struct vk_sync *signal_sync_frag);
|
||||
|
||||
VkResult pvr_srv_render_target_dataset_create(
|
||||
#ifdef PVR_PER_ARCH
|
||||
VkResult PVR_PER_ARCH(srv_render_target_dataset_create)(
|
||||
struct pvr_winsys *ws,
|
||||
const struct pvr_winsys_rt_dataset_create_info *create_info,
|
||||
const struct pvr_device_info *dev_info,
|
||||
struct pvr_winsys_rt_dataset **const rt_dataset_out);
|
||||
|
||||
void pvr_srv_fragment_cmd_init(struct rogue_fwif_cmd_3d *cmd,
|
||||
const struct pvr_winsys_fragment_state *state,
|
||||
const struct pvr_device_info *dev_info,
|
||||
uint32_t frame_num);
|
||||
void PVR_PER_ARCH(srv_fragment_cmd_init)(
|
||||
struct rogue_fwif_cmd_3d *cmd,
|
||||
const struct pvr_winsys_fragment_state *state,
|
||||
const struct pvr_device_info *dev_info,
|
||||
uint32_t frame_num);
|
||||
|
||||
void pvr_srv_geometry_cmd_init(
|
||||
void PVR_PER_ARCH(srv_geometry_cmd_init)(
|
||||
const struct pvr_winsys_render_submit_info *submit_info,
|
||||
const struct pvr_srv_sync_prim *sync_prim,
|
||||
struct rogue_fwif_cmd_ta *cmd,
|
||||
const struct pvr_device_info *const dev_info);
|
||||
#endif
|
||||
|
||||
#endif /* PVR_SRV_JOB_RENDER_H */
|
||||
|
||||
@@ -132,6 +132,15 @@ void pvr_srv_winsys_transfer_ctx_destroy(struct pvr_winsys_transfer_ctx *ctx)
|
||||
vk_free(srv_ws->base.alloc, srv_ctx);
|
||||
}
|
||||
|
||||
#define PER_ARCH_FUNCS(arch) \
|
||||
void pvr_##arch##_srv_transfer_cmd_stream_load( \
|
||||
struct rogue_fwif_cmd_transfer *const cmd, \
|
||||
const uint8_t *const stream, \
|
||||
const uint32_t stream_len, \
|
||||
const struct pvr_device_info *const dev_info)
|
||||
|
||||
PER_ARCH_FUNCS(rogue);
|
||||
|
||||
static void pvr_srv_transfer_cmds_init(
|
||||
const struct pvr_winsys_transfer_submit_info *submit_info,
|
||||
struct rogue_fwif_cmd_transfer *cmds,
|
||||
@@ -140,16 +149,19 @@ static void pvr_srv_transfer_cmds_init(
|
||||
{
|
||||
memset(cmds, 0, sizeof(*cmds) * submit_info->cmd_count);
|
||||
|
||||
enum pvr_device_arch arch = dev_info->ident.arch;
|
||||
for (uint32_t i = 0; i < cmd_count; i++) {
|
||||
const struct pvr_winsys_transfer_cmd *submit_cmd = &submit_info->cmds[i];
|
||||
struct rogue_fwif_cmd_transfer *cmd = &cmds[i];
|
||||
|
||||
cmd->cmn.frame_num = submit_info->frame_num;
|
||||
|
||||
pvr_srv_transfer_cmd_stream_load(cmd,
|
||||
submit_cmd->fw_stream,
|
||||
submit_cmd->fw_stream_len,
|
||||
dev_info);
|
||||
PVR_ARCH_DISPATCH(srv_transfer_cmd_stream_load,
|
||||
arch,
|
||||
cmd,
|
||||
submit_cmd->fw_stream,
|
||||
submit_cmd->fw_stream_len,
|
||||
dev_info);
|
||||
|
||||
if (submit_info->cmds[i].flags.use_single_core)
|
||||
cmd->flags |= ROGUE_FWIF_CMDTRANSFER_SINGLE_CORE;
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
#include "pvr_macros.h"
|
||||
|
||||
struct rogue_fwif_cmd_transfer;
|
||||
struct pvr_device_info;
|
||||
struct pvr_winsys;
|
||||
@@ -50,10 +52,12 @@ VkResult pvr_srv_winsys_transfer_submit(
|
||||
const struct pvr_device_info *dev_info,
|
||||
struct vk_sync *signal_sync);
|
||||
|
||||
void pvr_srv_transfer_cmd_stream_load(
|
||||
#ifdef PVR_PER_ARCH
|
||||
void PVR_PER_ARCH(srv_transfer_cmd_stream_load)(
|
||||
struct rogue_fwif_cmd_transfer *const cmd,
|
||||
const uint8_t *const stream,
|
||||
const uint32_t stream_len,
|
||||
const struct pvr_device_info *const dev_info);
|
||||
#endif
|
||||
|
||||
#endif /* PVR_SRV_JOB_TRANSFER_H */
|
||||
|
||||
Reference in New Issue
Block a user