broadcom/vc4: Switch the Viewport Center fields to a fixed-point representation.
This gets us automatic CL decoding to a floating-point value, and drops a magic number from the emit code. 250x250 shader runner tests now say they have a center of 125.0 instead of 2000.
This commit is contained in:
parent
299c9a2db1
commit
b3c78a51f3
|
@ -212,8 +212,8 @@
|
||||||
</packet>
|
</packet>
|
||||||
|
|
||||||
<packet name="Viewport Offset" code="103">
|
<packet name="Viewport Offset" code="103">
|
||||||
<field name="Viewport Centre Y-coordinate" size="16" start="16" type="int"/>
|
<field name="Viewport Centre Y-coordinate" size="16" start="16" type="s12.4"/>
|
||||||
<field name="Viewport Centre X-coordinate" size="16" start="0" type="int"/>
|
<field name="Viewport Centre X-coordinate" size="16" start="0" type="s12.4"/>
|
||||||
</packet>
|
</packet>
|
||||||
|
|
||||||
<packet name="Z min and max clipping planes" code="104">
|
<packet name="Z min and max clipping planes" code="104">
|
||||||
|
|
|
@ -135,9 +135,9 @@ vc4_emit_state(struct pipe_context *pctx)
|
||||||
|
|
||||||
cl_emit(&job->bcl, VIEWPORT_OFFSET, vp) {
|
cl_emit(&job->bcl, VIEWPORT_OFFSET, vp) {
|
||||||
vp.viewport_centre_x_coordinate =
|
vp.viewport_centre_x_coordinate =
|
||||||
16 * vc4->viewport.translate[0];
|
vc4->viewport.translate[0];
|
||||||
vp.viewport_centre_y_coordinate =
|
vp.viewport_centre_y_coordinate =
|
||||||
16 * vc4->viewport.translate[1];
|
vc4->viewport.translate[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue