rsx: Don't crash when invalid buffer is allocated for a shader
This commit is contained in:
@@ -385,7 +385,13 @@ public:
|
||||
|
||||
void fill_fragment_constants_buffer(std::span<f32> dst_buffer, const fragment_program_type& fragment_program, const RSXFragmentProgram& rsx_prog, bool sanitize = false) const
|
||||
{
|
||||
ensure((dst_buffer.size_bytes() >= ::narrow<int>(fragment_program.FragmentConstantOffsetCache.size()) * 16u));
|
||||
if (dst_buffer.size_bytes() < (fragment_program.FragmentConstantOffsetCache.size() * 16))
|
||||
{
|
||||
// This can happen if CELL alters the shader after it has been loaded by RSX.
|
||||
rsx_log.error("Insufficient constants buffer size passed to fragment program! Corrupt shader?");
|
||||
return;
|
||||
}
|
||||
|
||||
rsx::write_fragment_constants_to_buffer(dst_buffer, rsx_prog, fragment_program.FragmentConstantOffsetCache, sanitize);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user