mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 10:00:14 +01:00
pco/usclib: switch to common defs
Signed-off-by: Simon Perretta <simon.perretta@imgtec.com> Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37439>
This commit is contained in:
parent
116d8573d4
commit
61a7a5958d
6 changed files with 41 additions and 23 deletions
|
|
@ -335,7 +335,7 @@ enum_map(OM_SCHEDSWAP.t, F_SCHED_CTRL, [
|
|||
('swap', 'swap'),
|
||||
])
|
||||
|
||||
enum_map(OM_MTX_OP.t, F_LR, [
|
||||
enum_map(OM_MUTEX_OP.t, F_LR, [
|
||||
('release', 'release'),
|
||||
('release_sleep', 'release_sleep'),
|
||||
('release_wakeup', 'release_wakeup'),
|
||||
|
|
@ -1764,7 +1764,7 @@ encode_map(O_BR_NEXT,
|
|||
encode_map(O_MUTEX,
|
||||
encodings=[
|
||||
(I_MUTEX, [
|
||||
('lr', OM_MTX_OP),
|
||||
('lr', OM_MUTEX_OP),
|
||||
('id', ('pco_ref_get_imm', SRC(0))),
|
||||
])
|
||||
],
|
||||
|
|
|
|||
|
|
@ -113,6 +113,25 @@ DRC = enum_type('drc', [
|
|||
('pending', '?'),
|
||||
])
|
||||
|
||||
MUTEX_ID = enum_type('mutex_id', [
|
||||
'atomic_emu',
|
||||
'barrier',
|
||||
'rsvd_2',
|
||||
'rsvd_3',
|
||||
'rsvd_4',
|
||||
'rsvd_5',
|
||||
'rsvd_6',
|
||||
'rsvd_7',
|
||||
'rsvd_8',
|
||||
'rsvd_9',
|
||||
'rsvd_a',
|
||||
'rsvd_b',
|
||||
'rsvd_c',
|
||||
'rsvd_d',
|
||||
'rsvd_e',
|
||||
'rsvd_f'
|
||||
])
|
||||
|
||||
# Ref mods.
|
||||
RM_ONEMINUS = ref_mod('oneminus', BaseType.bool)
|
||||
RM_CLAMP = ref_mod('clamp', BaseType.bool)
|
||||
|
|
@ -321,7 +340,7 @@ OM_FRED_PART = op_mod_enum('fred_part', [
|
|||
'b',
|
||||
])
|
||||
|
||||
OM_MTX_OP = op_mod_enum('mtx_op', [
|
||||
OM_MUTEX_OP = op_mod_enum('mutex_op', [
|
||||
('release', 'release'),
|
||||
('release_sleep', 'release.sleep'),
|
||||
('release_wakeup', 'release.wakeup'),
|
||||
|
|
@ -448,7 +467,7 @@ O_BR = hw_op('br', [OM_EXEC_CND, OM_BRANCH_CND, OM_LINK], has_target_cf_node=Tru
|
|||
|
||||
O_BR_NEXT = hw_op('br.next', [OM_EXEC_CND])
|
||||
|
||||
O_MUTEX = hw_op('mutex', [OM_MTX_OP], 0, 1)
|
||||
O_MUTEX = hw_op('mutex', [OM_MUTEX_OP], 0, 1)
|
||||
|
||||
# Combination (> 1 instructions per group).
|
||||
O_SCMP = hw_op('scmp', OM_ALU + [OM_TST_OP_MAIN], 1, 2, [], [[RM_ABS, RM_NEG], [RM_ABS, RM_NEG]])
|
||||
|
|
|
|||
|
|
@ -1870,7 +1870,7 @@ static pco_instr *trans_intr(trans_ctx *tctx, nir_intrinsic_instr *intr)
|
|||
case nir_intrinsic_mutex_pco:
|
||||
instr = pco_mutex(&tctx->b,
|
||||
pco_ref_imm8(nir_intrinsic_mutex_id_pco(intr)),
|
||||
.mtx_op = nir_intrinsic_mutex_op_pco(intr));
|
||||
.mutex_op = nir_intrinsic_mutex_op_pco(intr));
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_instance_num_pco:
|
||||
|
|
|
|||
|
|
@ -3,25 +3,12 @@
|
|||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#ifndef PCO_LIBCL_H
|
||||
#define PCO_LIBCL_H
|
||||
|
||||
#include "compiler/libcl/libcl.h"
|
||||
#include "compiler/shader_enums.h"
|
||||
|
||||
enum pco_mutex_id {
|
||||
PCO_MUTEX_ID_ATOMIC_EMU,
|
||||
PCO_MUTEX_ID_BARRIER,
|
||||
|
||||
_PCO_MUTEX_ID_COUNT,
|
||||
};
|
||||
static_assert(_PCO_MUTEX_ID_COUNT <= 16, "Too many mutex IDs.");
|
||||
|
||||
enum pco_mutex_op {
|
||||
PCO_MUTEX_OP_RELEASE,
|
||||
PCO_MUTEX_OP_RELEASE_SLEEP,
|
||||
PCO_MUTEX_OP_RELEASE_WAKEUP,
|
||||
PCO_MUTEX_OP_LOCK,
|
||||
};
|
||||
|
||||
#define ROGUE_MAX_INSTANCES_PER_TASK 32
|
||||
#include "pco/pco_common.h"
|
||||
|
||||
void nir_mutex_pco(enum pco_mutex_id mutex_id, enum pco_mutex_op mutex_op);
|
||||
uint32_t nir_load_instance_num_pco(void);
|
||||
|
|
@ -51,3 +38,4 @@ void nir_store_shared(uint32_t value,
|
|||
uint write_mask,
|
||||
uint align_mul,
|
||||
uint align_offset);
|
||||
#endif /* PCO_LIBCL_H */
|
||||
|
|
|
|||
|
|
@ -17,7 +17,10 @@ pco_usclib_spv = custom_target(
|
|||
'-I' + join_paths(meson.project_source_root(), 'include'),
|
||||
'-I' + join_paths(meson.project_source_root(), 'src/compiler/libcl'),
|
||||
'-I' + join_paths(meson.current_source_dir(), '.'),
|
||||
'-I' + join_paths(meson.current_source_dir(), '../../../'),
|
||||
'-I' + join_paths(meson.current_source_dir(), '../..'),
|
||||
'-I' + join_paths(meson.current_source_dir(), '../../include'),
|
||||
'-I' + join_paths(meson.current_source_dir(), '../../..'),
|
||||
'-I' + join_paths(meson.current_build_dir(), '../..'),
|
||||
cl_args,
|
||||
],
|
||||
depfile : 'pco_usclib.h.d',
|
||||
|
|
|
|||
|
|
@ -3,6 +3,14 @@
|
|||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#ifndef __pvr_address_type
|
||||
#define __pvr_address_type uint64_t
|
||||
#define __pvr_get_address(addr) addr
|
||||
#define __pvr_make_address(addr) addr
|
||||
#endif /* __pvr_address_type */
|
||||
|
||||
#include "csbgen/rogue_cdm.h"
|
||||
#include "hwdef/rogue_hw_defs.h"
|
||||
#include "libcl.h"
|
||||
|
||||
uint32_t
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue