mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/ir: Properly check the register bounds in shader_signature_find_element_for_reg().
Perhaps the existing code is safe in practice, but doing the check properly avoids having to make that determination.
This commit is contained in:
parent
8e39783770
commit
f37be27bdc
Notes:
Henri Verbeet
2024-09-24 14:10:54 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1107
@ -1211,12 +1211,13 @@ static bool io_normaliser_is_in_control_point_phase(const struct io_normaliser *
|
||||
static bool shader_signature_find_element_for_reg(const struct shader_signature *signature,
|
||||
unsigned int reg_idx, unsigned int write_mask, unsigned int *element_idx)
|
||||
{
|
||||
const struct signature_element *e;
|
||||
unsigned int i, base_write_mask;
|
||||
|
||||
for (i = 0; i < signature->element_count; ++i)
|
||||
{
|
||||
struct signature_element *e = &signature->elements[i];
|
||||
if (e->register_index <= reg_idx && e->register_index + e->register_count > reg_idx
|
||||
e = &signature->elements[i];
|
||||
if (e->register_index <= reg_idx && e->register_count > reg_idx - e->register_index
|
||||
&& (e->mask & write_mask) == write_mask)
|
||||
{
|
||||
*element_idx = i;
|
||||
|
Loading…
x
Reference in New Issue
Block a user