-
Fix assert while updating surface buffers. · ae7756e0Nicolas Capens authored
When the external buffer of a surface is dirty, and we're trying to lock the internal buffer (or vice-versa), an 'update' needs to happen. This resulted in us locking the internal buffer for writing, thereby marking it as dirty. This triggered an assert which checks that both buffers can't be dirty at the same time. Also, in release mode this could result in redundant updates when the external buffer is locked again. We should mark the destination buffer dirty when we're about to make sure it's up to date, so a new lock type was added which is equivalent to a write lock but without setting the dirty flag. Also, we were allocating memory for a 0x0 stencil buffer for each render target, when there's no stencil component. So return nullptr when the format is NULL. Change-Id: Ie7b5528e3eedc3c3efdf8461047e6284b7bdfc84 Reviewed-on: https://swiftshader-review.googlesource.com/16828Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
ae7756e0
×