mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 20:48:08 +02:00
mesa/st: fix strict aliasing issue in int64 code.
This fixes the int64 code same as the double code. Reviewed-by: Timothy Arceri <t_arceri@yahoo.com.au> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
30cff4f5f7
commit
c674f11e42
1 changed files with 2 additions and 4 deletions
|
|
@ -3363,15 +3363,13 @@ glsl_to_tgsi_visitor::visit(ir_constant *ir)
|
|||
case GLSL_TYPE_INT64:
|
||||
gl_type = GL_INT64_ARB;
|
||||
for (i = 0; i < ir->type->vector_elements; i++) {
|
||||
values[i * 2].i = *(uint32_t *)&ir->value.d[i];
|
||||
values[i * 2 + 1].i = *(((uint32_t *)&ir->value.d[i]) + 1);
|
||||
memcpy(&values[i * 2], &ir->value.d[i], sizeof(int64_t));
|
||||
}
|
||||
break;
|
||||
case GLSL_TYPE_UINT64:
|
||||
gl_type = GL_UNSIGNED_INT64_ARB;
|
||||
for (i = 0; i < ir->type->vector_elements; i++) {
|
||||
values[i * 2].i = *(uint32_t *)&ir->value.d[i];
|
||||
values[i * 2 + 1].i = *(((uint32_t *)&ir->value.d[i]) + 1);
|
||||
memcpy(&values[i * 2], &ir->value.d[i], sizeof(uint64_t));
|
||||
}
|
||||
break;
|
||||
case GLSL_TYPE_UINT:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue