Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
cd26144d
Commit
cd26144d
authored
Jan 22, 2016
by
John Kessenich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SPV: the OpImageTexelPointer sample 0 should be <id> of 0, not literal 0.
parent
7b9fa25b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
19 deletions
+18
-19
GlslangToSpv.cpp
SPIRV/GlslangToSpv.cpp
+2
-3
spv.image.frag.out
Test/baseResults/spv.image.frag.out
+16
-16
No files found.
SPIRV/GlslangToSpv.cpp
View file @
cd26144d
...
@@ -2087,13 +2087,12 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
...
@@ -2087,13 +2087,12 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
}
else
if
(
node
->
isSparseImage
())
{
}
else
if
(
node
->
isSparseImage
())
{
spv
::
MissingFunctionality
(
"sparse image functions"
);
spv
::
MissingFunctionality
(
"sparse image functions"
);
return
spv
::
NoResult
;
return
spv
::
NoResult
;
}
}
else
{
else
{
// Process image atomic operations
// Process image atomic operations
// GLSL "IMAGE_PARAMS" will involve in constructing an image texel pointer and this pointer,
// GLSL "IMAGE_PARAMS" will involve in constructing an image texel pointer and this pointer,
// as the first source operand, is required by SPIR-V atomic operations.
// as the first source operand, is required by SPIR-V atomic operations.
operands
.
push_back
(
sampler
.
ms
?
*
(
opIt
++
)
:
0
);
// For non-MS, the value should be 0
operands
.
push_back
(
sampler
.
ms
?
*
(
opIt
++
)
:
builder
.
makeUintConstant
(
0
)
);
// For non-MS, the value should be 0
spv
::
Id
resultTypeId
=
builder
.
makePointer
(
spv
::
StorageClassImage
,
convertGlslangToSpvType
(
node
->
getType
()));
spv
::
Id
resultTypeId
=
builder
.
makePointer
(
spv
::
StorageClassImage
,
convertGlslangToSpvType
(
node
->
getType
()));
spv
::
Id
pointer
=
builder
.
createOp
(
spv
::
OpImageTexelPointer
,
resultTypeId
,
operands
);
spv
::
Id
pointer
=
builder
.
createOp
(
spv
::
OpImageTexelPointer
,
resultTypeId
,
operands
);
...
...
Test/baseResults/spv.image.frag.out
View file @
cd26144d
...
@@ -346,7 +346,7 @@ Linked fragment stage:
...
@@ -346,7 +346,7 @@ Linked fragment stage:
ImageWrite 224 225 227 Sample 226
ImageWrite 224 225 227 Sample 226
Store 229(ui) 19
Store 229(ui) 19
233: 6(int) Load 132(ic1D)
233: 6(int) Load 132(ic1D)
236: 235(ptr) ImageTexelPointer 232(ii1D) 233
0
236: 235(ptr) ImageTexelPointer 232(ii1D) 233
19
238: 6(int) AtomicIAdd 236 237 19 234
238: 6(int) AtomicIAdd 236 237 19 234
239: 20(ptr) AccessChain 9(iv) 19
239: 20(ptr) AccessChain 9(iv) 19
240: 6(int) Load 239
240: 6(int) Load 239
...
@@ -355,13 +355,13 @@ Linked fragment stage:
...
@@ -355,13 +355,13 @@ Linked fragment stage:
Store 242 241
Store 242 241
246: 29(ivec2) Load 142(ic2D)
246: 29(ivec2) Load 142(ic2D)
249: 18(int) Load 248(value)
249: 18(int) Load 248(value)
251: 250(ptr) ImageTexelPointer 245(ui2D) 246
0
251: 250(ptr) ImageTexelPointer 245(ui2D) 246
19
252: 18(int) AtomicIAdd 251 237 19 249
252: 18(int) AtomicIAdd 251 237 19 249
253: 18(int) Load 229(ui)
253: 18(int) Load 229(ui)
254: 18(int) IAdd 253 252
254: 18(int) IAdd 253 252
Store 229(ui) 254
Store 229(ui) 254
255: 6(int) Load 132(ic1D)
255: 6(int) Load 132(ic1D)
257: 235(ptr) ImageTexelPointer 232(ii1D) 255
0
257: 235(ptr) ImageTexelPointer 232(ii1D) 255
19
258: 6(int) AtomicSMin 257 237 19 256
258: 6(int) AtomicSMin 257 237 19 256
259: 20(ptr) AccessChain 9(iv) 19
259: 20(ptr) AccessChain 9(iv) 19
260: 6(int) Load 259
260: 6(int) Load 259
...
@@ -370,13 +370,13 @@ Linked fragment stage:
...
@@ -370,13 +370,13 @@ Linked fragment stage:
Store 262 261
Store 262 261
263: 29(ivec2) Load 142(ic2D)
263: 29(ivec2) Load 142(ic2D)
264: 18(int) Load 248(value)
264: 18(int) Load 248(value)
265: 250(ptr) ImageTexelPointer 245(ui2D) 263
0
265: 250(ptr) ImageTexelPointer 245(ui2D) 263
19
266: 18(int) AtomicUMin 265 237 19 264
266: 18(int) AtomicUMin 265 237 19 264
267: 18(int) Load 229(ui)
267: 18(int) Load 229(ui)
268: 18(int) IAdd 267 266
268: 18(int) IAdd 267 266
Store 229(ui) 268
Store 229(ui) 268
269: 6(int) Load 132(ic1D)
269: 6(int) Load 132(ic1D)
271: 235(ptr) ImageTexelPointer 232(ii1D) 269
0
271: 235(ptr) ImageTexelPointer 232(ii1D) 269
19
272: 6(int) AtomicSMax 271 237 19 270
272: 6(int) AtomicSMax 271 237 19 270
273: 20(ptr) AccessChain 9(iv) 19
273: 20(ptr) AccessChain 9(iv) 19
274: 6(int) Load 273
274: 6(int) Load 273
...
@@ -385,13 +385,13 @@ Linked fragment stage:
...
@@ -385,13 +385,13 @@ Linked fragment stage:
Store 276 275
Store 276 275
277: 29(ivec2) Load 142(ic2D)
277: 29(ivec2) Load 142(ic2D)
278: 18(int) Load 248(value)
278: 18(int) Load 248(value)
279: 250(ptr) ImageTexelPointer 245(ui2D) 277
0
279: 250(ptr) ImageTexelPointer 245(ui2D) 277
19
280: 18(int) AtomicUMax 279 237 19 278
280: 18(int) AtomicUMax 279 237 19 278
281: 18(int) Load 229(ui)
281: 18(int) Load 229(ui)
282: 18(int) IAdd 281 280
282: 18(int) IAdd 281 280
Store 229(ui) 282
Store 229(ui) 282
283: 6(int) Load 132(ic1D)
283: 6(int) Load 132(ic1D)
285: 235(ptr) ImageTexelPointer 232(ii1D) 283
0
285: 235(ptr) ImageTexelPointer 232(ii1D) 283
19
286: 6(int) AtomicAnd 285 237 19 284
286: 6(int) AtomicAnd 285 237 19 284
287: 20(ptr) AccessChain 9(iv) 19
287: 20(ptr) AccessChain 9(iv) 19
288: 6(int) Load 287
288: 6(int) Load 287
...
@@ -400,13 +400,13 @@ Linked fragment stage:
...
@@ -400,13 +400,13 @@ Linked fragment stage:
Store 290 289
Store 290 289
291: 29(ivec2) Load 142(ic2D)
291: 29(ivec2) Load 142(ic2D)
292: 18(int) Load 248(value)
292: 18(int) Load 248(value)
293: 250(ptr) ImageTexelPointer 245(ui2D) 291
0
293: 250(ptr) ImageTexelPointer 245(ui2D) 291
19
294: 18(int) AtomicAnd 293 237 19 292
294: 18(int) AtomicAnd 293 237 19 292
295: 18(int) Load 229(ui)
295: 18(int) Load 229(ui)
296: 18(int) IAdd 295 294
296: 18(int) IAdd 295 294
Store 229(ui) 296
Store 229(ui) 296
297: 6(int) Load 132(ic1D)
297: 6(int) Load 132(ic1D)
299: 235(ptr) ImageTexelPointer 232(ii1D) 297
0
299: 235(ptr) ImageTexelPointer 232(ii1D) 297
19
300: 6(int) AtomicOr 299 237 19 298
300: 6(int) AtomicOr 299 237 19 298
301: 20(ptr) AccessChain 9(iv) 19
301: 20(ptr) AccessChain 9(iv) 19
302: 6(int) Load 301
302: 6(int) Load 301
...
@@ -415,13 +415,13 @@ Linked fragment stage:
...
@@ -415,13 +415,13 @@ Linked fragment stage:
Store 304 303
Store 304 303
305: 29(ivec2) Load 142(ic2D)
305: 29(ivec2) Load 142(ic2D)
306: 18(int) Load 248(value)
306: 18(int) Load 248(value)
307: 250(ptr) ImageTexelPointer 245(ui2D) 305
0
307: 250(ptr) ImageTexelPointer 245(ui2D) 305
19
308: 18(int) AtomicOr 307 237 19 306
308: 18(int) AtomicOr 307 237 19 306
309: 18(int) Load 229(ui)
309: 18(int) Load 229(ui)
310: 18(int) IAdd 309 308
310: 18(int) IAdd 309 308
Store 229(ui) 310
Store 229(ui) 310
311: 6(int) Load 132(ic1D)
311: 6(int) Load 132(ic1D)
313: 235(ptr) ImageTexelPointer 232(ii1D) 311
0
313: 235(ptr) ImageTexelPointer 232(ii1D) 311
19
314: 6(int) AtomicXor 313 237 19 312
314: 6(int) AtomicXor 313 237 19 312
315: 20(ptr) AccessChain 9(iv) 19
315: 20(ptr) AccessChain 9(iv) 19
316: 6(int) Load 315
316: 6(int) Load 315
...
@@ -430,13 +430,13 @@ Linked fragment stage:
...
@@ -430,13 +430,13 @@ Linked fragment stage:
Store 318 317
Store 318 317
319: 29(ivec2) Load 142(ic2D)
319: 29(ivec2) Load 142(ic2D)
320: 18(int) Load 248(value)
320: 18(int) Load 248(value)
321: 250(ptr) ImageTexelPointer 245(ui2D) 319
0
321: 250(ptr) ImageTexelPointer 245(ui2D) 319
19
322: 18(int) AtomicXor 321 237 19 320
322: 18(int) AtomicXor 321 237 19 320
323: 18(int) Load 229(ui)
323: 18(int) Load 229(ui)
324: 18(int) IAdd 323 322
324: 18(int) IAdd 323 322
Store 229(ui) 324
Store 229(ui) 324
325: 6(int) Load 132(ic1D)
325: 6(int) Load 132(ic1D)
327: 235(ptr) ImageTexelPointer 232(ii1D) 325
0
327: 235(ptr) ImageTexelPointer 232(ii1D) 325
19
328: 6(int) AtomicExchange 327 237 19 326
328: 6(int) AtomicExchange 327 237 19 326
329: 20(ptr) AccessChain 9(iv) 19
329: 20(ptr) AccessChain 9(iv) 19
330: 6(int) Load 329
330: 6(int) Load 329
...
@@ -445,13 +445,13 @@ Linked fragment stage:
...
@@ -445,13 +445,13 @@ Linked fragment stage:
Store 332 331
Store 332 331
333: 29(ivec2) Load 142(ic2D)
333: 29(ivec2) Load 142(ic2D)
334: 18(int) Load 248(value)
334: 18(int) Load 248(value)
335: 250(ptr) ImageTexelPointer 245(ui2D) 333
0
335: 250(ptr) ImageTexelPointer 245(ui2D) 333
19
336: 18(int) AtomicExchange 335 237 19 334
336: 18(int) AtomicExchange 335 237 19 334
337: 18(int) Load 229(ui)
337: 18(int) Load 229(ui)
338: 18(int) IAdd 337 336
338: 18(int) IAdd 337 336
Store 229(ui) 338
Store 229(ui) 338
339: 6(int) Load 132(ic1D)
339: 6(int) Load 132(ic1D)
342: 235(ptr) ImageTexelPointer 232(ii1D) 339
0
342: 235(ptr) ImageTexelPointer 232(ii1D) 339
19
343: 6(int) AtomicCompareExchange 342 237 19 19 341 340
343: 6(int) AtomicCompareExchange 342 237 19 19 341 340
344: 20(ptr) AccessChain 9(iv) 19
344: 20(ptr) AccessChain 9(iv) 19
345: 6(int) Load 344
345: 6(int) Load 344
...
@@ -460,7 +460,7 @@ Linked fragment stage:
...
@@ -460,7 +460,7 @@ Linked fragment stage:
Store 347 346
Store 347 346
348: 29(ivec2) Load 142(ic2D)
348: 29(ivec2) Load 142(ic2D)
350: 18(int) Load 248(value)
350: 18(int) Load 248(value)
351: 250(ptr) ImageTexelPointer 245(ui2D) 348
0
351: 250(ptr) ImageTexelPointer 245(ui2D) 348
19
352: 18(int) AtomicCompareExchange 351 237 19 19 350 349
352: 18(int) AtomicCompareExchange 351 237 19 19 350 349
353: 18(int) Load 229(ui)
353: 18(int) Load 229(ui)
354: 18(int) IAdd 353 352
354: 18(int) IAdd 353 352
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment