|
8 | 8 | #pragma once |
9 | 9 |
|
10 | 10 | #include "shared/source/command_container/command_encoder.h" |
| 11 | +#include "shared/source/command_container/walker_partition_interface.h" |
11 | 12 | #include "shared/source/debug_settings/debug_settings_manager.h" |
12 | 13 | #include "shared/source/helpers/basic_math.h" |
13 | 14 | #include "shared/source/helpers/hw_helper.h" |
|
18 | 19 |
|
19 | 20 | namespace WalkerPartition { |
20 | 21 |
|
21 | | -struct WalkerPartitionArgs { |
22 | | - uint64_t workPartitionAllocationGpuVa = 0; |
23 | | - uint32_t partitionCount = 0; |
24 | | - uint32_t tileCount = 0; |
25 | | - bool emitBatchBufferEnd = false; |
26 | | - bool secondaryBatchBuffer = false; |
27 | | - bool synchronizeBeforeExecution = false; |
28 | | - bool crossTileAtomicSynchronization = false; |
29 | | - bool semaphoreProgrammingRequired = false; |
30 | | - bool staticPartitioning = false; |
31 | | - bool emitSelfCleanup = false; |
32 | | - bool useAtomicsForSelfCleanup = false; |
33 | | - bool initializeWparidRegister = false; |
34 | | - bool emitPipeControlStall = false; |
35 | | - bool preferredStaticPartitioning = false; |
36 | | -}; |
37 | | - |
38 | 22 | template <typename GfxFamily> |
39 | 23 | using COMPUTE_WALKER = typename GfxFamily::COMPUTE_WALKER; |
40 | 24 | template <typename GfxFamily> |
@@ -62,26 +46,6 @@ using PIPE_CONTROL = typename GfxFamily::PIPE_CONTROL; |
62 | 46 | template <typename GfxFamily> |
63 | 47 | using MI_STORE_DATA_IMM = typename GfxFamily::MI_STORE_DATA_IMM; |
64 | 48 |
|
65 | | -constexpr uint32_t wparidCCSOffset = 0x221C; |
66 | | -constexpr uint32_t addressOffsetCCSOffset = 0x23B4; |
67 | | -constexpr uint32_t predicationMaskCCSOffset = 0x21FC; |
68 | | - |
69 | | -constexpr uint32_t generalPurposeRegister0 = 0x2600; |
70 | | -constexpr uint32_t generalPurposeRegister1 = 0x2608; |
71 | | -constexpr uint32_t generalPurposeRegister2 = 0x2610; |
72 | | -constexpr uint32_t generalPurposeRegister3 = 0x2618; |
73 | | -constexpr uint32_t generalPurposeRegister4 = 0x2620; |
74 | | -constexpr uint32_t generalPurposeRegister5 = 0x2628; |
75 | | -constexpr uint32_t generalPurposeRegister6 = 0x2630; |
76 | | - |
77 | | -struct BatchBufferControlData { |
78 | | - uint32_t partitionCount = 0u; |
79 | | - uint32_t tileCount = 0u; |
80 | | - uint32_t inTileCount = 0u; |
81 | | - uint32_t finalSyncTileCount = 0u; |
82 | | -}; |
83 | | -static constexpr inline size_t dynamicPartitioningFieldsForCleanupCount = sizeof(BatchBufferControlData) / sizeof(uint32_t) - 1; |
84 | | - |
85 | 49 | template <typename Command> |
86 | 50 | Command *putCommand(void *&inputAddress, uint32_t &totalBytesProgrammed) { |
87 | 51 | totalBytesProgrammed += sizeof(Command); |
@@ -631,13 +595,6 @@ void constructDynamicallyPartitionedCommandBuffer(void *cpuPointer, |
631 | 595 | } |
632 | 596 | } |
633 | 597 |
|
634 | | -struct StaticPartitioningControlSection { |
635 | | - uint32_t synchronizeBeforeWalkerCounter = 0; |
636 | | - uint32_t synchronizeAfterWalkerCounter = 0; |
637 | | - uint32_t finalSyncTileCounter = 0; |
638 | | -}; |
639 | | -static constexpr inline size_t staticPartitioningFieldsForCleanupCount = sizeof(StaticPartitioningControlSection) / sizeof(uint32_t) - 1; |
640 | | - |
641 | 598 | template <typename GfxFamily> |
642 | 599 | uint64_t computeStaticPartitioningControlSectionOffset(WalkerPartitionArgs &args) { |
643 | 600 | const auto beforeExecutionSyncAtomicSize = args.synchronizeBeforeExecution |
|
0 commit comments