John Stiles
e40d166477
Reland "Add support for top-level uniforms in SPIR-V."
...
This reverts commit 0de76f72cd
.
Reason for revert: fixes ASAN use-after-scope-end issue
Original change's description:
> Revert "Add support for top-level uniforms in SPIR-V."
>
> This reverts commit acba30420c
.
>
> Reason for revert: ASAN breakage on tree for
> Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-(Debug|Release)-All-ASAN
>
> Address 0x009af69fda78 is located in stack of thread T0 at offset 1272 in frame
> #0 0x7ff75c069ddf in _asan_wrap_RtlReAllocateHeap+0x44014f (c:\b\s\w\ir\build\nanobench.exe+0x1413a9ddf)
> This frame has 35 object(s):
> [32, 104) 'body' (line 3363)
> [144, 152) 'main' (line 3365)
> [176, 184) 'ref.tmp' (line 3366)
> [208, 240) '__begin1' (line 3366)
> [272, 304) '__end1' (line 3366)
> [336, 344) 'ref.tmp27' (line 3370)
> [368, 384) 'ref.tmp31' (line 3371)
> [400, 416) 'interfaceVars' (line 3382)
> [432, 440) 'ref.tmp48' (line 3383)
> [464, 496) '__begin151' (line 3383)
> [528, 560) '__end154' (line 3383)
> [592, 596) 'id' (line 3386)
> [608, 624) 'tmp' (line 3393)
> [640, 648) 'ref.tmp114' (line 3398)
> [672, 704) '__begin1117' (line 3398)
> [736, 768) '__end1120' (line 3398)
> [800, 1008) 'uniformBuffer' (line 3405)
> [1072, 1280) 'ref.tmp159' (line 3407) <== Memory access at offset 1272 is inside this variable
> [1344, 1360) 'agg.tmp'
> [1376, 1576) 'adapter' (line 3411)
> [1648, 1848) 'ref.tmp179' (line 3413)
> [1920, 1928) 'ref.tmp191' (line 3415)
> [1952, 1960) 'ref.tmp210' (line 3421)
> [1984, 2016) '__begin1213' (line 3421)
> [2048, 2080) '__end1216' (line 3421)
> [2112, 2120) '__begin1242' (line 3427)
> [2144, 2152) '__end1247' (line 3427)
> [2176, 2192) 'entry256' (line 3427)
> [2208, 2224) 'tmp298' (line 3433)
> [2240, 2256) 'agg.tmp307'
> [2272, 2280) '__begin1365' (line 3457)
> [2304, 2312) 'ref.tmp415' (line 3469)
> [2336, 2368) '__begin1418' (line 3469)
> [2400, 2432) '__end1421' (line 3469)
> [2464, 2480) 'agg.tmp436'
>
> Original change's description:
> > Add support for top-level uniforms in SPIR-V.
> >
> > Previously, a uniform not wrapped in an interface block would report a
> > SPIR-V error:
> >
> > "Variables identified with the Uniform storage class are
> > used to access transparent buffer backed resources. Such variables must
> > be typed as OpTypeStruct, or an array of this type..."
> >
> > Now, the SPIR-V code generator automatically detects such global
> > variables and synthesizes a struct named _UniformBuffer to hold them.
> > When these variables are accessed, an OpAccessChain instruction is added
> > to grab the variable out of the struct.
> >
> > Change-Id: I5e852d4de01b866c291506cc8cf6eb547f097d66
> > Bug: skia:11225
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/360776
> > Commit-Queue: John Stiles <johnstiles@google.com>
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Auto-Submit: John Stiles <johnstiles@google.com>
>
> TBR=brianosman@google.com ,ethannicholas@google.com,johnstiles@google.com
>
> Change-Id: Ib72e33dbd662a245c20bc9d45d1397454c9588a3
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:11225
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362057
> Reviewed-by: John Stiles <johnstiles@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>
TBR=brianosman@google.com ,ethannicholas@google.com,johnstiles@google.com
Bug: skia:11225
Change-Id: I10501c30a701301f6487ea154047ad1c1d0e8c70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362076
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-29 16:12:03 +00:00
John Stiles
0de76f72cd
Revert "Add support for top-level uniforms in SPIR-V."
...
This reverts commit acba30420c
.
Reason for revert: ASAN breakage on tree for
Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-(Debug|Release)-All-ASAN
Address 0x009af69fda78 is located in stack of thread T0 at offset 1272 in frame
#0 0x7ff75c069ddf in _asan_wrap_RtlReAllocateHeap+0x44014f (c:\b\s\w\ir\build\nanobench.exe+0x1413a9ddf)
This frame has 35 object(s):
[32, 104) 'body' (line 3363)
[144, 152) 'main' (line 3365)
[176, 184) 'ref.tmp' (line 3366)
[208, 240) '__begin1' (line 3366)
[272, 304) '__end1' (line 3366)
[336, 344) 'ref.tmp27' (line 3370)
[368, 384) 'ref.tmp31' (line 3371)
[400, 416) 'interfaceVars' (line 3382)
[432, 440) 'ref.tmp48' (line 3383)
[464, 496) '__begin151' (line 3383)
[528, 560) '__end154' (line 3383)
[592, 596) 'id' (line 3386)
[608, 624) 'tmp' (line 3393)
[640, 648) 'ref.tmp114' (line 3398)
[672, 704) '__begin1117' (line 3398)
[736, 768) '__end1120' (line 3398)
[800, 1008) 'uniformBuffer' (line 3405)
[1072, 1280) 'ref.tmp159' (line 3407) <== Memory access at offset 1272 is inside this variable
[1344, 1360) 'agg.tmp'
[1376, 1576) 'adapter' (line 3411)
[1648, 1848) 'ref.tmp179' (line 3413)
[1920, 1928) 'ref.tmp191' (line 3415)
[1952, 1960) 'ref.tmp210' (line 3421)
[1984, 2016) '__begin1213' (line 3421)
[2048, 2080) '__end1216' (line 3421)
[2112, 2120) '__begin1242' (line 3427)
[2144, 2152) '__end1247' (line 3427)
[2176, 2192) 'entry256' (line 3427)
[2208, 2224) 'tmp298' (line 3433)
[2240, 2256) 'agg.tmp307'
[2272, 2280) '__begin1365' (line 3457)
[2304, 2312) 'ref.tmp415' (line 3469)
[2336, 2368) '__begin1418' (line 3469)
[2400, 2432) '__end1421' (line 3469)
[2464, 2480) 'agg.tmp436'
Original change's description:
> Add support for top-level uniforms in SPIR-V.
>
> Previously, a uniform not wrapped in an interface block would report a
> SPIR-V error:
>
> "Variables identified with the Uniform storage class are
> used to access transparent buffer backed resources. Such variables must
> be typed as OpTypeStruct, or an array of this type..."
>
> Now, the SPIR-V code generator automatically detects such global
> variables and synthesizes a struct named _UniformBuffer to hold them.
> When these variables are accessed, an OpAccessChain instruction is added
> to grab the variable out of the struct.
>
> Change-Id: I5e852d4de01b866c291506cc8cf6eb547f097d66
> Bug: skia:11225
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/360776
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>
TBR=brianosman@google.com ,ethannicholas@google.com,johnstiles@google.com
Change-Id: Ib72e33dbd662a245c20bc9d45d1397454c9588a3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:11225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362057
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-29 14:20:16 +00:00
John Stiles
acba30420c
Add support for top-level uniforms in SPIR-V.
...
Previously, a uniform not wrapped in an interface block would report a
SPIR-V error:
"Variables identified with the Uniform storage class are
used to access transparent buffer backed resources. Such variables must
be typed as OpTypeStruct, or an array of this type..."
Now, the SPIR-V code generator automatically detects such global
variables and synthesizes a struct named _UniformBuffer to hold them.
When these variables are accessed, an OpAccessChain instruction is added
to grab the variable out of the struct.
Change-Id: I5e852d4de01b866c291506cc8cf6eb547f097d66
Bug: skia:11225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/360776
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-28 21:19:26 +00:00