Rename MIN_PRECISION enum to prevent namespace clashes with DX headers.
OPCODE_SAMPLE_B and _D are not shadow samplers.
Apple&GNU compilation fixes.
Remove static from enum definitions
Fix IsOffsetInType to match HLSL array packing rules. Also support 3D samplers properly.
- Optimization for detecting for loops: IGE+BREAKC combo is emitted with a shortcut if(<cond>) break; to make latter optimization stages recognize the for loops easier.
- SetDataTypes(): Do 2 passes on the instruction stream, first analyze the int/float usage and then attempt to map that to int/float temporaries. Make a temp register float if any float operation is attempted on it.
- TranslateOperand split out to TranslateOperandWithSwizzle so that we can add a component mask to the operand (needed for proper MOVC code generation)
- gl_GlobalInvocationID and other compute shader IDs are vec3s, so we need a hack to make them look like vec4 (always add .xyzz to them).
- toGLSLInstruction.c: Refactored most of MOV and MOVC handling to produce more correct output.
- Added flags for disabling explicit location qualifiers (even if the language supports that), and to disabling the globals struct
- Matrix arrays must be treated as such, and not as vec4 arrays.
- Vertex shader input and output names were conflicting, prefixed inputs with 'in_'
- Various bitcast fixes, added AUTO_BITCAST_TO_UINT
- Various small typo fixes
Merge branch 'master' into UnityFixes
Fix compilation on VS2013
Moved GetConstructorForType and ...Flags to toGLSLOperand.c and make them non-static (add to headers as well)
Minor fixes, removed extra semicolon from output.
More smarts in the type analysis: if an instruction touches multiple components of vec4, make sure they're all marked to the same type.
- Swizzle calculation with mask.
- Proper support for matrix arrays with non-constant indexing
- int vs uint casts done properly.
Test updates
GS_INSTANCE_ID was handled as vec4 (is actually an uint), fixed.
OPCODE_INOT fixes.
matrix array handling fixes.
Rewrote FTOI/U and U/ITOF, now is much more compact (also a bit more correct).
test updates.
GATHER4_C was not marked as a zcompare sampler, fixed.
Removed leftover compile error files