mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 15:30:14 +01:00
d3d12: Fix indexing of local_reference_state
Instead of manually indexing a single-dimensional array as 2-dimensional
(and using the wrong stride for the outer array) just actually make it
a 2-dimensional array.
Fixes: 7edae456 ("d3d12: Track up to 16 contexts worth of batch references locally in bos")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24041>
This commit is contained in:
parent
8166c1f8c1
commit
a6740ee7a4
2 changed files with 4 additions and 4 deletions
|
|
@ -284,7 +284,7 @@ d3d12_batch_get_reference(struct d3d12_batch *batch,
|
||||||
{
|
{
|
||||||
if (batch->ctx_id != D3D12_CONTEXT_NO_ID) {
|
if (batch->ctx_id != D3D12_CONTEXT_NO_ID) {
|
||||||
if ((bo->local_reference_mask[batch->ctx_id] & (1 << batch->ctx_index)) != 0) {
|
if ((bo->local_reference_mask[batch->ctx_id] & (1 << batch->ctx_index)) != 0) {
|
||||||
return &bo->local_reference_state[(batch->ctx_id * 16) + batch->ctx_index];
|
return &bo->local_reference_state[batch->ctx_id][batch->ctx_index];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -307,9 +307,9 @@ d3d12_batch_acquire_reference(struct d3d12_batch *batch,
|
||||||
d3d12_bo_reference(bo);
|
d3d12_bo_reference(bo);
|
||||||
util_dynarray_append(&batch->local_bos, d3d12_bo*, bo);
|
util_dynarray_append(&batch->local_bos, d3d12_bo*, bo);
|
||||||
bo->local_reference_mask[batch->ctx_id] |= (1 << batch->ctx_index);
|
bo->local_reference_mask[batch->ctx_id] |= (1 << batch->ctx_index);
|
||||||
bo->local_reference_state[(batch->ctx_id * 16) + batch->ctx_index] = batch_bo_reference_none;
|
bo->local_reference_state[batch->ctx_id][batch->ctx_index] = batch_bo_reference_none;
|
||||||
}
|
}
|
||||||
return &bo->local_reference_state[(batch->ctx_id * 16) + batch->ctx_index];
|
return &bo->local_reference_state[batch->ctx_id][batch->ctx_index];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
hash_entry* entry = _mesa_hash_table_search(batch->bos, bo);
|
hash_entry* entry = _mesa_hash_table_search(batch->bos, bo);
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ struct d3d12_bo {
|
||||||
uint8_t local_reference_mask[16];
|
uint8_t local_reference_mask[16];
|
||||||
|
|
||||||
d3d12_context_state_table_entry local_context_states[16];
|
d3d12_context_state_table_entry local_context_states[16];
|
||||||
uint8_t local_reference_state[128];
|
uint8_t local_reference_state[8][16];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct d3d12_buffer {
|
struct d3d12_buffer {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue