Skip to content

Commit 0011368

Browse files
Add parameter to set surface state base address value
This change introduces capability to set surface state base address when surface state heap or global base address are not available Related-To: NEO-7187 Signed-off-by: Zbigniew Zdanowicz <[email protected]>
1 parent 99c5de8 commit 0011368

16 files changed

+259
-51
lines changed

level_zero/core/source/cmdqueue/cmdqueue_hw_base.inl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
5757
indirectObjectHeapBaseAddress, // indirectObjectHeapBaseAddress
5858
instructionHeapBaseAddress, // instructionHeapBaseAddress
5959
globalHeapsBase, // globalHeapsBaseAddress
60+
0, // surfaceStateBaseAddress
6061
&sbaCmd, // stateBaseAddressCmd
6162
nullptr, // dsh
6263
nullptr, // ioh
@@ -69,7 +70,8 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
6970
useGlobalSshAndDsh, // useGlobalHeapsBaseAddress
7071
false, // isMultiOsContextCapable
7172
false, // useGlobalAtomics
72-
false // areMultipleSubDevicesInContext
73+
false, // areMultipleSubDevicesInContext
74+
false // overrideSurfaceStateBaseAddress
7375
};
7476

7577
NEO::StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(stateBaseAddressHelperArgs);

level_zero/core/source/cmdqueue/cmdqueue_xe_hp_core_and_later.inl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
4848
indirectObjectStateBaseAddress, // indirectObjectHeapBaseAddress
4949
instructionStateBaseAddress, // instructionHeapBaseAddress
5050
globalHeapsBase, // globalHeapsBaseAddress
51+
0, // surfaceStateBaseAddress
5152
&sbaCmd, // stateBaseAddressCmd
5253
nullptr, // dsh
5354
nullptr, // ioh
@@ -60,7 +61,8 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
6061
true, // useGlobalHeapsBaseAddress
6162
multiOsContextCapable, // isMultiOsContextCapable
6263
false, // useGlobalAtomics
63-
false // areMultipleSubDevicesInContext
64+
false, // areMultipleSubDevicesInContext
65+
false // overrideSurfaceStateBaseAddress
6466
};
6567

6668
NEO::StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(stateBaseAddressHelperArgs);

opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_2_tests.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, givenCsrWhenGen
12181218
0, // indirectObjectHeapBaseAddress
12191219
generalStateBaseAddress, // instructionHeapBaseAddress
12201220
0, // globalHeapsBaseAddress
1221+
0, // surfaceStateBaseAddress
12211222
&sbaCmd, // stateBaseAddressCmd
12221223
&dsh, // dsh
12231224
&ioh, // ioh
@@ -1230,7 +1231,8 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, givenCsrWhenGen
12301231
false, // useGlobalHeapsBaseAddress
12311232
false, // isMultiOsContextCapable
12321233
false, // useGlobalAtomics
1233-
false // areMultipleSubDevicesInContext
1234+
false, // areMultipleSubDevicesInContext
1235+
false // overrideSurfaceStateBaseAddress
12341236
};
12351237
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
12361238

@@ -1247,6 +1249,7 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, givenNonZeroGeneralStateBaseAddres
12471249
0, // indirectObjectHeapBaseAddress
12481250
generalStateBaseAddress, // instructionHeapBaseAddress
12491251
0, // globalHeapsBaseAddress
1252+
0, // surfaceStateBaseAddress
12501253
&sbaCmd, // stateBaseAddressCmd
12511254
&dsh, // dsh
12521255
&ioh, // ioh
@@ -1259,7 +1262,8 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, givenNonZeroGeneralStateBaseAddres
12591262
false, // useGlobalHeapsBaseAddress
12601263
false, // isMultiOsContextCapable
12611264
false, // useGlobalAtomics
1262-
false // areMultipleSubDevicesInContext
1265+
false, // areMultipleSubDevicesInContext
1266+
false // overrideSurfaceStateBaseAddress
12631267
};
12641268
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
12651269

@@ -1278,6 +1282,7 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, givenNonZeroInternalHeapBaseAddres
12781282
internalHeapBaseAddress, // indirectObjectHeapBaseAddress
12791283
0, // instructionHeapBaseAddress
12801284
0, // globalHeapsBaseAddress
1285+
0, // surfaceStateBaseAddress
12811286
&sbaCmd, // stateBaseAddressCmd
12821287
&dsh, // dsh
12831288
&ioh, // ioh
@@ -1290,7 +1295,8 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, givenNonZeroInternalHeapBaseAddres
12901295
false, // useGlobalHeapsBaseAddress
12911296
false, // isMultiOsContextCapable
12921297
false, // useGlobalAtomics
1293-
false // areMultipleSubDevicesInContext
1298+
false, // areMultipleSubDevicesInContext
1299+
false // overrideSurfaceStateBaseAddress
12941300
};
12951301
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
12961302

@@ -1313,6 +1319,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, givenSbaProgram
13131319
internalHeapBase, // indirectObjectHeapBaseAddress
13141320
instructionHeapBase, // instructionHeapBaseAddress
13151321
0, // globalHeapsBaseAddress
1322+
0, // surfaceStateBaseAddress
13161323
&sbaCmd, // stateBaseAddressCmd
13171324
nullptr, // dsh
13181325
nullptr, // ioh
@@ -1325,7 +1332,8 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, givenSbaProgram
13251332
false, // useGlobalHeapsBaseAddress
13261333
false, // isMultiOsContextCapable
13271334
false, // useGlobalAtomics
1328-
false // areMultipleSubDevicesInContext
1335+
false, // areMultipleSubDevicesInContext
1336+
false // overrideSurfaceStateBaseAddress
13291337
};
13301338
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
13311339

opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandStreamReceiverFlushTaskXeHPAndLaterTests, gi
330330
internalHeapBase, // indirectObjectHeapBaseAddress
331331
instructionHeapBase, // instructionHeapBaseAddress
332332
0, // globalHeapsBaseAddress
333+
0, // surfaceStateBaseAddress
333334
&sbaCmd, // stateBaseAddressCmd
334335
nullptr, // dsh
335336
nullptr, // ioh
@@ -342,7 +343,8 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandStreamReceiverFlushTaskXeHPAndLaterTests, gi
342343
false, // useGlobalHeapsBaseAddress
343344
false, // isMultiOsContextCapable
344345
false, // useGlobalAtomics
345-
false // areMultipleSubDevicesInContext
346+
false, // areMultipleSubDevicesInContext
347+
false // overrideSurfaceStateBaseAddress
346348
};
347349
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
348350

opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,7 @@ HWTEST2_F(StateBaseAddressXeHPAndLaterTests, givenMemoryCompressionEnabledWhenAp
466466
0, // indirectObjectHeapBaseAddress
467467
0, // instructionHeapBaseAddress
468468
0, // globalHeapsBaseAddress
469+
0, // surfaceStateBaseAddress
469470
&sbaCmd, // stateBaseAddressCmd
470471
nullptr, // dsh
471472
nullptr, // ioh
@@ -478,7 +479,8 @@ HWTEST2_F(StateBaseAddressXeHPAndLaterTests, givenMemoryCompressionEnabledWhenAp
478479
false, // useGlobalHeapsBaseAddress
479480
false, // isMultiOsContextCapable
480481
false, // useGlobalAtomics
481-
false // areMultipleSubDevicesInContext
482+
false, // areMultipleSubDevicesInContext
483+
false // overrideSurfaceStateBaseAddress
482484
};
483485
StateBaseAddressHelper<FamilyType>::appendStateBaseAddressParameters(args, true);
484486
if (memoryCompressionState == MemoryCompressionState::Enabled) {
@@ -504,6 +506,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, StateBaseAddressXeHPAndLaterTests, givenNonZeroInte
504506
ihba, // indirectObjectHeapBaseAddress
505507
0, // instructionHeapBaseAddress
506508
0, // globalHeapsBaseAddress
509+
0, // surfaceStateBaseAddress
507510
&sbaCmd, // stateBaseAddressCmd
508511
nullptr, // dsh
509512
nullptr, // ioh
@@ -516,7 +519,8 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, StateBaseAddressXeHPAndLaterTests, givenNonZeroInte
516519
false, // useGlobalHeapsBaseAddress
517520
false, // isMultiOsContextCapable
518521
false, // useGlobalAtomics
519-
false // areMultipleSubDevicesInContext
522+
false, // areMultipleSubDevicesInContext
523+
false // overrideSurfaceStateBaseAddress
520524
};
521525
StateBaseAddressHelper<FamilyType>::appendStateBaseAddressParameters(args, true);
522526
EXPECT_EQ(0ull, sbaCmd.getGeneralStateBaseAddress());

opencl/test/unit_test/xe_hpc_core/test_cmds_programming_xe_hpc_core.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ XE_HPC_CORETEST_F(CmdsProgrammingTestsXeHpcCore, givenSpecificProductFamilyWhenA
5656
0, // indirectObjectHeapBaseAddress
5757
0, // instructionHeapBaseAddress
5858
0, // globalHeapsBaseAddress
59+
0, // surfaceStateBaseAddress
5960
&sbaCmd, // stateBaseAddressCmd
6061
nullptr, // dsh
6162
nullptr, // ioh
@@ -68,7 +69,8 @@ XE_HPC_CORETEST_F(CmdsProgrammingTestsXeHpcCore, givenSpecificProductFamilyWhenA
6869
false, // useGlobalHeapsBaseAddress
6970
false, // isMultiOsContextCapable
7071
false, // useGlobalAtomics
71-
false // areMultipleSubDevicesInContext
72+
false, // areMultipleSubDevicesInContext
73+
false // overrideSurfaceStateBaseAddress
7274
};
7375
StateBaseAddressHelper<FamilyType>::appendStateBaseAddressParameters(args, true);
7476

@@ -92,6 +94,7 @@ XE_HPC_CORETEST_F(CmdsProgrammingTestsXeHpcCore, givenL1CachingOverrideWhenState
9294
0, // indirectObjectHeapBaseAddress
9395
0, // instructionHeapBaseAddress
9496
0, // globalHeapsBaseAddress
97+
0, // surfaceStateBaseAddress
9598
&sbaCmd, // stateBaseAddressCmd
9699
nullptr, // dsh
97100
nullptr, // ioh
@@ -104,7 +107,8 @@ XE_HPC_CORETEST_F(CmdsProgrammingTestsXeHpcCore, givenL1CachingOverrideWhenState
104107
false, // useGlobalHeapsBaseAddress
105108
false, // isMultiOsContextCapable
106109
false, // useGlobalAtomics
107-
false // areMultipleSubDevicesInContext
110+
false, // areMultipleSubDevicesInContext
111+
false // overrideSurfaceStateBaseAddress
108112
};
109113
StateBaseAddressHelper<FamilyType>::appendStateBaseAddressParameters(args, true);
110114

opencl/test/unit_test/xe_hpg_core/dg2/test_cmds_programming_dg2.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ DG2TEST_F(CmdsProgrammingTestsDg2, givenSpecificProductFamilyWhenAppendingSbaThe
5656
0, // indirectObjectHeapBaseAddress
5757
0, // instructionHeapBaseAddress
5858
0, // globalHeapsBaseAddress
59+
0, // surfaceStateBaseAddress
5960
&sbaCmd, // stateBaseAddressCmd
6061
nullptr, // dsh
6162
nullptr, // ioh
@@ -68,7 +69,8 @@ DG2TEST_F(CmdsProgrammingTestsDg2, givenSpecificProductFamilyWhenAppendingSbaThe
6869
false, // useGlobalHeapsBaseAddress
6970
false, // isMultiOsContextCapable
7071
false, // useGlobalAtomics
71-
false // areMultipleSubDevicesInContext
72+
false, // areMultipleSubDevicesInContext
73+
false // overrideSurfaceStateBaseAddress
7274
};
7375
StateBaseAddressHelper<FamilyType>::appendStateBaseAddressParameters(args, true);
7476

@@ -92,6 +94,7 @@ DG2TEST_F(CmdsProgrammingTestsDg2, givenL1CachingOverrideWhenStateBaseAddressIsP
9294
0, // indirectObjectHeapBaseAddress
9395
0, // instructionHeapBaseAddress
9496
0, // globalHeapsBaseAddress
97+
0, // surfaceStateBaseAddress
9598
&sbaCmd, // stateBaseAddressCmd
9699
nullptr, // dsh
97100
nullptr, // ioh
@@ -104,7 +107,8 @@ DG2TEST_F(CmdsProgrammingTestsDg2, givenL1CachingOverrideWhenStateBaseAddressIsP
104107
false, // useGlobalHeapsBaseAddress
105108
false, // isMultiOsContextCapable
106109
false, // useGlobalAtomics
107-
false // areMultipleSubDevicesInContext
110+
false, // areMultipleSubDevicesInContext
111+
false // overrideSurfaceStateBaseAddress
108112
};
109113
StateBaseAddressHelper<FamilyType>::appendStateBaseAddressParameters(args, true);
110114

0 commit comments

Comments
 (0)