diff options
author | Bruce Cherniak <[email protected]> | 2017-11-08 18:39:37 -0600 |
---|---|---|
committer | George Kyriazis <[email protected]> | 2017-11-10 08:55:42 -0600 |
commit | d473f91758143b1dd320146ddfe6e697ccc77c0d (patch) | |
tree | 55244ae547aaea122985f6967f7cb318542f4a03 /src/gallium/auxiliary/util/u_bitcast.h | |
parent | fecd04a66ae6207a10dbc6885411e89e1e5299d1 (diff) |
swr: Fixed an uncommon freed-memory access during state validation
State validation is performed during clear and draw calls. Validation
during clear was still accessing vertex buffer state. When the currently
set vertex buffers are client arrays, this could lead to accessing freed
memory. Such is the case with the VMD application.
Previously, vertex buffer validation depended on a dirty bit or the
draw info indicating an indexed draw. This required special handling for
clears. But, vertex buffer validation still occurred which was unnecessary
and wrong.
Now, only minimal validation is performed during clear, deferring the
remainder to the next draw. And, by setting the dirty bit in swr_draw_vbo
for indexed draws, vertex buffer validation is only dependent upon a
single dirty bit.
This fixes a bug exposed by the VMD application when changing models.
Reviewed-By: George Kyriazis <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/util/u_bitcast.h')
0 files changed, 0 insertions, 0 deletions