Do not allow render targets not explicitly written by the fragment shader to be modified (#3063)

* Do not allow render targets not explicitly written by the fragment shader to be modified

* Shader cache version bump

* Remove blank lines

* Avoid redundant color mask updates

* HostShaderCacheEntry can be null

* Avoid more redundant glColorMask calls

* nit: Mask -> Masks

* Fix currentComponentMask

* More efficient way to update _currentComponentMasks
This commit is contained in:
gdkchan 2022-02-16 19:15:39 -03:00 committed by GitHub
parent ab5d77c0c4
commit 3bd357045f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 176 additions and 131 deletions

View file

@ -5,17 +5,21 @@
public ThreadedProgram Threaded { get; set; }
private byte[] _data;
private bool _hasFragmentShader;
private ShaderInfo _info;
public BinaryProgramRequest(ThreadedProgram program, byte[] data)
public BinaryProgramRequest(ThreadedProgram program, byte[] data, bool hasFragmentShader, ShaderInfo info)
{
Threaded = program;
_data = data;
_hasFragmentShader = hasFragmentShader;
_info = info;
}
public IProgram Create(IRenderer renderer)
{
return renderer.LoadProgramBinary(_data);
return renderer.LoadProgramBinary(_data, _hasFragmentShader, _info);
}
}
}