Closed ravi688 closed 1 week ago
Contribution License Aggreement instructed me to include Copyright (C) [yyyy] [MyName]
, Shall I do it as an Individual?
Contribution License Aggreement instructed me to include
Copyright (C) [yyyy] [MyName]
, Shall I do it as an Individual?
If you work for a tech company they may own the copyright on your work. If you don't know then do it as an individual.
thanks!
Actually, I'm just going to make a commit adding some test cases on top of yours and then I will merge this.
HI @arcady-lunarg ,
Apologies for the late response. This change doesn't fix the #3607 issue. I planned to look that into this weekend. Sorry if I will be late. You may proceed to merge this for now.
Though, now that I actually read the GLSL_EXT_shader_16bit_storage spec, it seems that these identity conversions are actually forbidden and indeed that converting directly from 8-bit to 16-bit without going through int is also forbidden. That seems unnecessarily strict and I have to wonder if that was the original intention of the spec writers to forbid this. @jeffbolznv, as the original spec writer, might you weigh in here?
The original GLSL spec does say "Identity constructors, like float(float) are also legal, but of little use", so IMO this should still be allowed in the sized storage extensions as well.
That seems unnecessarily strict and I have to wonder if that was the original intention of the spec writers to forbid this. @jeffbolznv, as the original spec writer, might you weigh in here?
The original 8/16-bit storage support in Vulkan was very limited because some IHVs didn't really support 8/16-bit types and could only load them from memory but not really operate on them as smaller types. I don't remember specifics of the GLSL extension beyond that.
Original Issue Reported: https://github.com/KhronosGroup/glslang/issues/3616
This change affects the following type of shaders (which do identity conversion for 8/16 bit types):
Earlier (before this fix), it generated incorrect SPIR-V convert instructions.
Ran
ctest
and it reports all tests are passsing: Test project /home/ravi/OpenSource/glslang/build Start 1: glslang-testsuite 1/2 Test #1: glslang-testsuite ................ Passed 30.53 sec Start 2: glslang-gtests 2/2 Test #2: glslang-gtests ................... Passed 15.38 sec100% tests passed, 0 tests failed out of 2
Total Test time (real) = 45.92 sec