[Mesa-dev] [PATCH 3/6] i965: Stop using BRW_RASTRULE_LOWER_RIGHT on Gen4-5.
Rafael Antognolli
rafael.antognolli at intel.com
Mon Jun 5 16:51:53 UTC 2017
Reviewed-by: Rafael Antognolli <rafael.antognolli at intel.com>
On Wed, May 10, 2017 at 11:47:27AM -0700, Kenneth Graunke wrote:
> This effectively reverts Robert Ellison's 2009 commit
> cc8afbd3862fedfe42e51c3774960d1c7078ec53.
>
> I'm not seeing any GL spec text indicating that UPPER won't work.
> On Gen6+, this bit moved to 3DSTATE_WM as a single bit, controlling
> UPPER_LEFT vs. UPPER_RIGHT. There is no way to request LOWER_RIGHT,
> so UPPER_RIGHT is the best you can do.
>
> In the G45 docs, it's marked as "Reserved" as well, but we just
> decided to use it anyway.
>
> This patch unifies the behavior between Gen4-5 and Gen6+.
>
> Note that this is separate from point sprite texcoord behavior.
> ---
> src/mesa/drivers/dri/i965/brw_sf_state.c | 28 +---------------------------
> 1 file changed, 1 insertion(+), 27 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_sf_state.c b/src/mesa/drivers/dri/i965/brw_sf_state.c
> index d5e586d1bf3..30a9f5d5e43 100644
> --- a/src/mesa/drivers/dri/i965/brw_sf_state.c
> +++ b/src/mesa/drivers/dri/i965/brw_sf_state.c
> @@ -227,33 +227,7 @@ static void upload_sf_unit( struct brw_context *brw )
> else if (sf->sf6.line_width <= 0x2)
> sf->sf6.line_width = 0;
>
> - /* _NEW_BUFFERS */
> - if (!render_to_fbo) {
> - /* Rendering to an OpenGL window */
> - sf->sf6.point_rast_rule = BRW_RASTRULE_UPPER_RIGHT;
> - }
> - else {
> - /* If rendering to an FBO, the pixel coordinate system is
> - * inverted with respect to the normal OpenGL coordinate
> - * system, so BRW_RASTRULE_LOWER_RIGHT is correct.
> - * But this value is listed as "Reserved, but not seen as useful"
> - * in Intel documentation (page 212, "Point Rasterization Rule",
> - * section 7.4 "SF Pipeline State Summary", of document
> - * "IntelĀ® 965 Express Chipset Family and IntelĀ® G35 Express
> - * Chipset Graphics Controller Programmer's Reference Manual,
> - * Volume 2: 3D/Media", Revision 1.0b as of January 2008,
> - * available at
> - * https://01.org/linuxgraphics/documentation/hardware-specification-prms
> - * at the time of this writing).
> - *
> - * It does work on at least some devices, if not all;
> - * if devices that don't support it can be identified,
> - * the likely failure case is that points are rasterized
> - * incorrectly, which is no worse than occurs without
> - * the value, so we're using it here.
> - */
> - sf->sf6.point_rast_rule = BRW_RASTRULE_LOWER_RIGHT;
> - }
> + sf->sf6.point_rast_rule = BRW_RASTRULE_UPPER_RIGHT;
>
> /* _NEW_POINT */
> sf->sf7.sprite_point = ctx->Point.PointSprite;
> --
> 2.12.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list