diff --git a/src/imagination/vulkan/meson.build b/src/imagination/vulkan/meson.build index 7cbf89b73b1..6d79234ec17 100644 --- a/src/imagination/vulkan/meson.build +++ b/src/imagination/vulkan/meson.build @@ -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', diff --git a/src/imagination/vulkan/winsys/powervr/pvr_arch_drm_job_compute.c b/src/imagination/vulkan/winsys/powervr/pvr_arch_drm_job_compute.c index 7781dcc3c6e..07d32771040 100644 --- a/src/imagination/vulkan/winsys/powervr/pvr_arch_drm_job_compute.c +++ b/src/imagination/vulkan/winsys/powervr/pvr_arch_drm_job_compute.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) diff --git a/src/imagination/vulkan/winsys/powervr/pvr_arch_drm_job_render.c b/src/imagination/vulkan/winsys/powervr/pvr_arch_drm_job_render.c index 3864878bebf..6013f781e2a 100644 --- a/src/imagination/vulkan/winsys/powervr/pvr_arch_drm_job_render.c +++ b/src/imagination/vulkan/winsys/powervr/pvr_arch_drm_job_render.c @@ -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) diff --git a/src/imagination/vulkan/winsys/powervr/pvr_drm_job_compute.c b/src/imagination/vulkan/winsys/powervr/pvr_drm_job_compute.c index 413709a1510..d905aab99c2 100644 --- a/src/imagination/vulkan/winsys/powervr/pvr_drm_job_compute.c +++ b/src/imagination/vulkan/winsys/powervr/pvr_drm_job_compute.c @@ -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, diff --git a/src/imagination/vulkan/winsys/powervr/pvr_drm_job_compute.h b/src/imagination/vulkan/winsys/powervr/pvr_drm_job_compute.h index ab8ff3a6fab..ee4a700827d 100644 --- a/src/imagination/vulkan/winsys/powervr/pvr_drm_job_compute.h +++ b/src/imagination/vulkan/winsys/powervr/pvr_drm_job_compute.h @@ -26,6 +26,8 @@ #include +#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 */ diff --git a/src/imagination/vulkan/winsys/powervr/pvr_drm_job_render.c b/src/imagination/vulkan/winsys/powervr/pvr_drm_job_render.c index 9e0f0bd6773..ad2cf7e25cd 100644 --- a/src/imagination/vulkan/winsys/powervr/pvr_drm_job_render.c +++ b/src/imagination/vulkan/winsys/powervr/pvr_drm_job_render.c @@ -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, diff --git a/src/imagination/vulkan/winsys/powervr/pvr_drm_job_render.h b/src/imagination/vulkan/winsys/powervr/pvr_drm_job_render.h index 8f34134f7c8..97cbf1ec4fe 100644 --- a/src/imagination/vulkan/winsys/powervr/pvr_drm_job_render.h +++ b/src/imagination/vulkan/winsys/powervr/pvr_drm_job_render.h @@ -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 */ diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_compute.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_compute.c index 911265afac1..6d30efb9bc1 100644 --- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_compute.c +++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_compute.c @@ -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) diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_render.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_render.c index 51e3189d22a..35fd8fa0050 100644 --- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_render.c +++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_render.c @@ -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; diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_transfer.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_transfer.c index ea4bcbf129e..6a41c201466 100644 --- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_transfer.c +++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_arch_srv_job_transfer.c @@ -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, diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.c index 9a6eae9cc39..010331836d2 100644 --- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.c +++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.c @@ -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); diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.h b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.h index d6fcaf88b0f..52fa4637ff0 100644 --- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.h +++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_compute.h @@ -26,6 +26,8 @@ #include +#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 */ diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c index 9041557cb7e..bfa7865f3af 100644 --- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c +++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c @@ -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); diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.h b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.h index 5b661bf439b..fef49f68292 100644 --- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.h +++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.h @@ -27,6 +27,8 @@ #include #include +#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 */ diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_transfer.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_transfer.c index ce6eb7c1683..4e0882ce7a4 100644 --- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_transfer.c +++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_transfer.c @@ -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; diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_transfer.h b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_transfer.h index b9d8e8cad38..76ade9957e4 100644 --- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_transfer.h +++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_transfer.h @@ -26,6 +26,8 @@ #include +#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 */