Skip to content

Commit 14df4bb

Browse files
committed
amdilc: discriminate SRV/UAV from generic resources
1 parent 7820b14 commit 14df4bb

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/amdilc/amdilc_compiler.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
typedef enum {
2424
RES_TYPE_GENERIC,
25+
RES_TYPE_SRV,
26+
RES_TYPE_UAV,
2527
RES_TYPE_LDS,
2628
RES_TYPE_ATOMIC_COUNTER,
2729
RES_TYPE_PUSH_CONSTANTS,
@@ -1383,7 +1385,7 @@ static void emitTypedUav(
13831385
NO_STRIDE_INDEX);
13841386

13851387
const IlcResource resource = {
1386-
.resType = RES_TYPE_GENERIC,
1388+
.resType = RES_TYPE_UAV,
13871389
.id = resourceId,
13881390
.typeId = imageId,
13891391
.texelTypeId = sampledTypeId,
@@ -1428,7 +1430,7 @@ static void emitUav(
14281430
}
14291431

14301432
const IlcResource resource = {
1431-
.resType = RES_TYPE_GENERIC,
1433+
.resType = RES_TYPE_UAV,
14321434
.id = resourceId,
14331435
.typeId = arrayId,
14341436
.texelTypeId = compiler->floatId,
@@ -1524,7 +1526,7 @@ static void emitSrv(
15241526
}
15251527

15261528
const IlcResource resource = {
1527-
.resType = RES_TYPE_GENERIC,
1529+
.resType = RES_TYPE_SRV,
15281530
.id = resourceId,
15291531
.typeId = arrayId,
15301532
.texelTypeId = compiler->floatId,
@@ -2844,7 +2846,7 @@ static void emitUavLoad(
28442846
{
28452847
uint8_t ilResourceId = GET_BITS(instr->control, 0, 14);
28462848

2847-
const IlcResource* resource = findResource(compiler, RES_TYPE_GENERIC, ilResourceId);
2849+
const IlcResource* resource = findResource(compiler, RES_TYPE_UAV, ilResourceId);
28482850
const Destination* dst = &instr->dsts[0];
28492851

28502852
if (resource == NULL) {
@@ -2866,7 +2868,7 @@ static void emitUavStructLoad(
28662868
{
28672869
uint16_t ilResourceId = GET_BITS(instr->control, 0, 14);
28682870

2869-
const IlcResource* resource = findResource(compiler, RES_TYPE_GENERIC, ilResourceId);
2871+
const IlcResource* resource = findResource(compiler, RES_TYPE_UAV, ilResourceId);
28702872
const Destination* dst = &instr->dsts[0];
28712873

28722874
if (resource == NULL) {
@@ -2918,7 +2920,7 @@ static void emitUavStore(
29182920
{
29192921
uint8_t ilResourceId = GET_BITS(instr->control, 0, 14);
29202922

2921-
const IlcResource* resource = findResource(compiler, RES_TYPE_GENERIC, ilResourceId);
2923+
const IlcResource* resource = findResource(compiler, RES_TYPE_UAV, ilResourceId);
29222924

29232925
if (resource == NULL) {
29242926
LOGE("resource %d not found\n", ilResourceId);
@@ -2940,7 +2942,7 @@ static void emitUavRawStructStore(
29402942
bool isRaw = instr->opcode == IL_OP_UAV_RAW_STORE;
29412943
uint16_t ilResourceId = GET_BITS(instr->control, 0, 14);
29422944

2943-
const IlcResource* resource = findResource(compiler, RES_TYPE_GENERIC, ilResourceId);
2945+
const IlcResource* resource = findResource(compiler, RES_TYPE_UAV, ilResourceId);
29442946
const Destination* dst = &instr->dsts[0];
29452947

29462948
if (resource == NULL) {
@@ -3032,7 +3034,7 @@ static void emitUavAtomicOp(
30323034
{
30333035
uint8_t ilResourceId = GET_BITS(instr->control, 0, 14);
30343036

3035-
const IlcResource* resource = findResource(compiler, RES_TYPE_GENERIC, ilResourceId);
3037+
const IlcResource* resource = findResource(compiler, RES_TYPE_UAV, ilResourceId);
30363038

30373039
if (resource == NULL) {
30383040
LOGE("resource %d not found\n", ilResourceId);
@@ -3171,7 +3173,7 @@ static void emitStructuredSrvLoad(
31713173
numFormat = nfmt;
31723174
}
31733175

3174-
const IlcResource* resource = findResource(compiler, RES_TYPE_GENERIC, ilResourceId);
3176+
const IlcResource* resource = findResource(compiler, RES_TYPE_SRV, ilResourceId);
31753177
const Destination* dst = &instr->dsts[0];
31763178

31773179
if (resource == NULL) {

0 commit comments

Comments
 (0)