mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-25 14:30:22 +01:00
i915: Texture instructions use r/t/oC/oD register as texture coordinate.
Fix http://bugs.freedesktop.org/show_bug.cgi?id=16287.
This commit is contained in:
parent
90e4e4117e
commit
b3cb405252
1 changed files with 13 additions and 0 deletions
|
|
@ -245,6 +245,19 @@ GLuint i915_emit_texld( struct i915_fragment_program *p,
|
|||
*/
|
||||
assert(GET_UREG_TYPE(coord) != REG_TYPE_U);
|
||||
|
||||
if ((GET_UREG_TYPE(coord) != REG_TYPE_R) &&
|
||||
(GET_UREG_TYPE(coord) != REG_TYPE_OC) &&
|
||||
(GET_UREG_TYPE(coord) != REG_TYPE_OD) &&
|
||||
(GET_UREG_TYPE(coord) != REG_TYPE_T)) {
|
||||
GLuint tmpCoord = get_free_rreg(p, live_regs);
|
||||
|
||||
if (tmpCoord == UREG_BAD)
|
||||
return 0;
|
||||
|
||||
i915_emit_arith(p, A0_MOV, tmpCoord, A0_DEST_CHANNEL_ALL, 0, coord, 0, 0);
|
||||
coord = tmpCoord;
|
||||
}
|
||||
|
||||
/* Output register being oC or oD defines a phase boundary */
|
||||
if (GET_UREG_TYPE(dest) == REG_TYPE_OC ||
|
||||
GET_UREG_TYPE(dest) == REG_TYPE_OD)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue