mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 09:30:11 +01:00
i965/draw: Use worst-case VBO bounds if brw->num_instances == 0
Previously, we only handled the "I don't know what's going on" case for things with InstanceDivisor == 0. However, in the DrawIndirect case we can get num_instances == 0 and we don't know what's going on with the instanced ones either. This commit makes the worst-case bound the default and then conservatively tightens the bound. Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
8892519751
commit
ad3deec8ca
1 changed files with 10 additions and 9 deletions
|
|
@ -468,17 +468,18 @@ brw_prepare_vertices(struct brw_context *brw)
|
|||
|
||||
const uint32_t offset = (uintptr_t)glarray->Ptr;
|
||||
|
||||
uint32_t start, range;
|
||||
/* Start with the worst case */
|
||||
uint32_t start = 0;
|
||||
uint32_t range = intel_buffer->Base.Size;
|
||||
if (glarray->InstanceDivisor) {
|
||||
start = offset;
|
||||
range = (glarray->StrideB * ((brw->num_instances /
|
||||
glarray->InstanceDivisor) - 1) +
|
||||
glarray->_ElementSize);
|
||||
if (brw->num_instances) {
|
||||
start = offset;
|
||||
range = (glarray->StrideB * ((brw->num_instances /
|
||||
glarray->InstanceDivisor) - 1) +
|
||||
glarray->_ElementSize);
|
||||
}
|
||||
} else {
|
||||
if (!brw->vb.index_bounds_valid) {
|
||||
start = 0;
|
||||
range = intel_buffer->Base.Size;
|
||||
} else {
|
||||
if (brw->vb.index_bounds_valid) {
|
||||
start = offset + min_index * glarray->StrideB;
|
||||
range = (glarray->StrideB * (max_index - min_index) +
|
||||
glarray->_ElementSize);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue