i965/vec4: handle doubles in type_size_vec4()
The scalar backend uses this to check URB input sizes. v2: Removed redundant break after return (Curro) Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
parent
8c6d147373
commit
0297f1021a
|
@ -587,15 +587,18 @@ type_size_vec4(const struct glsl_type *type)
|
|||
case GLSL_TYPE_INT:
|
||||
case GLSL_TYPE_FLOAT:
|
||||
case GLSL_TYPE_BOOL:
|
||||
case GLSL_TYPE_DOUBLE:
|
||||
if (type->is_matrix()) {
|
||||
return type->matrix_columns;
|
||||
const glsl_type *col_type = type->column_type();
|
||||
unsigned col_slots = col_type->is_dual_slot_double() ? 2 : 1;
|
||||
return type->matrix_columns * col_slots;
|
||||
} else {
|
||||
/* Regardless of size of vector, it gets a vec4. This is bad
|
||||
* packing for things like floats, but otherwise arrays become a
|
||||
* mess. Hopefully a later pass over the code can pack scalars
|
||||
* down if appropriate.
|
||||
*/
|
||||
return 1;
|
||||
/* Regardless of size of vector, it gets a vec4. This is bad
|
||||
* packing for things like floats, but otherwise arrays become a
|
||||
* mess. Hopefully a later pass over the code can pack scalars
|
||||
* down if appropriate.
|
||||
*/
|
||||
return type->is_dual_slot_double() ? 2 : 1;
|
||||
}
|
||||
case GLSL_TYPE_ARRAY:
|
||||
assert(type->length > 0);
|
||||
|
@ -619,7 +622,6 @@ type_size_vec4(const struct glsl_type *type)
|
|||
case GLSL_TYPE_IMAGE:
|
||||
return DIV_ROUND_UP(BRW_IMAGE_PARAM_SIZE, 4);
|
||||
case GLSL_TYPE_VOID:
|
||||
case GLSL_TYPE_DOUBLE:
|
||||
case GLSL_TYPE_ERROR:
|
||||
case GLSL_TYPE_INTERFACE:
|
||||
case GLSL_TYPE_FUNCTION:
|
||||
|
|
Loading…
Reference in New Issue