You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a pretty popularly used feature for any shader that reads from a video/external texture and is pretty essential for mobile performance. Unity seems to have "abandoned" glsl support and those of us targeting multiple platforms are forced to pick one or the other(CG/HLSL or GLSL) or double the maintenance by maintaining both.
Since HLSLcc reads directly from DirectX bytecode, I do not think it is possible to propagate a samplerExternalOES resource type into the sampler declarations directly from shader source code, though maybe an "awkward" solution is by naming a variable a certain way to get it to emit the GLSL code or utilizing something like D3D10_SB_OPCODE_CUSTOMDATA or some other metadata structure to propagate certain text data from Unity's CG/HLSL shaders directly into the emitted GLSL code(kind of like an inline assembly of sorts so that from a unity shader I can put some text between a preprocessor of sorts which puts metadata into a CUSTOMDATA block for HLSLcc to handle and emit specialized code for metal or glsl and such).
The text was updated successfully, but these errors were encountered:
I would love this. I'm struggling to figure out a way to unify our ShaderLab/CG shaders with our GLSL shaders. I'm willing to go as far as doing a build-time find-and-replace on the generated GLSL shader to insert the samplerExternalOES text but it doesn't seem like Unity provides an API for accessing the generated code.
This is a pretty popularly used feature for any shader that reads from a video/external texture and is pretty essential for mobile performance. Unity seems to have "abandoned" glsl support and those of us targeting multiple platforms are forced to pick one or the other(CG/HLSL or GLSL) or double the maintenance by maintaining both.
Since HLSLcc reads directly from DirectX bytecode, I do not think it is possible to propagate a
samplerExternalOES
resource type into the sampler declarations directly from shader source code, though maybe an "awkward" solution is by naming a variable a certain way to get it to emit the GLSL code or utilizing something like D3D10_SB_OPCODE_CUSTOMDATA or some other metadata structure to propagate certain text data from Unity's CG/HLSL shaders directly into the emitted GLSL code(kind of like an inline assembly of sorts so that from a unity shader I can put some text between a preprocessor of sorts which puts metadata into a CUSTOMDATA block for HLSLcc to handle and emit specialized code for metal or glsl and such).The text was updated successfully, but these errors were encountered: