From 4c7a44413a07d3fb314f786e047bb7212c082a6c Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 14 Oct 2022 13:45:48 -0400 Subject: [PATCH] mesa,gallium: Revert "Make point coord origin a CAP" This reverts commit e749f67f8989874f6795d95422c1f3eb4d2706ba, which added a CAP to support drivers that can only do upside-down point coordinates. That was added specifically for Asahi, since Metal's point coordinate convention is opposite Mesa's. Since then, additional reverse-engineering aided by the PowerVR headers led me to the bit doing the flip in hardware, so Asahi does not use the CAP since baadc1ec13f ("asahi: Don't use lower_wpos_pntc"). Garbage collect it. [If it's needed for future hardware, we can revive it. But the plan is Vulkan anyway.] Signed-off-by: Alyssa Rosenzweig Suggested-by: Erik Faye-Lund Reviewed-by: Erik Faye-Lund Part-of: --- docs/gallium/screen.rst | 2 -- src/gallium/auxiliary/util/u_screen.c | 5 ----- src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 - src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 - src/gallium/include/pipe/p_defines.h | 1 - src/mesa/main/consts_exts.h | 3 --- src/mesa/program/prog_statevars.c | 3 +-- src/mesa/state_tracker/st_context.c | 3 --- 8 files changed, 1 insertion(+), 18 deletions(-) diff --git a/docs/gallium/screen.rst b/docs/gallium/screen.rst index f48eadba0af..ff259ee5f8c 100644 --- a/docs/gallium/screen.rst +++ b/docs/gallium/screen.rst @@ -71,8 +71,6 @@ The integer capabilities: pixel-center fragment convention is supported. * ``PIPE_CAP_FS_COORD_PIXEL_CENTER_INTEGER``: Whether the integer pixel-center fragment convention is supported. -* ``PIPE_CAP_POINT_COORD_ORIGIN_UPPER_LEFT``: Whether point coordinates use the - upper-left origin convention. Otherwise the lower-left convention is used. * ``PIPE_CAP_DEPTH_CLIP_DISABLE``: Whether the driver is capable of disabling depth clipping (through pipe_rasterizer_state). * ``PIPE_CAP_DEPTH_CLIP_DISABLE_SEPARATE``: Whether the driver is capable of diff --git a/src/gallium/auxiliary/util/u_screen.c b/src/gallium/auxiliary/util/u_screen.c index 6e544bf0f9e..4700cfbda32 100644 --- a/src/gallium/auxiliary/util/u_screen.c +++ b/src/gallium/auxiliary/util/u_screen.c @@ -75,11 +75,6 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen, case PIPE_CAP_FS_COORD_ORIGIN_LOWER_LEFT: case PIPE_CAP_FS_COORD_PIXEL_CENTER_HALF_INTEGER: case PIPE_CAP_FS_COORD_PIXEL_CENTER_INTEGER: - return 0; - - case PIPE_CAP_POINT_COORD_ORIGIN_UPPER_LEFT: - return 1; - case PIPE_CAP_DEPTH_CLIP_DISABLE: case PIPE_CAP_DEPTH_CLIP_DISABLE_SEPARATE: case PIPE_CAP_DEPTH_CLAMP_ENABLE: diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c index 651753b2576..a102f57baf8 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c @@ -218,7 +218,6 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_INDEP_BLEND_ENABLE: case PIPE_CAP_FS_COORD_ORIGIN_UPPER_LEFT: case PIPE_CAP_FS_COORD_PIXEL_CENTER_HALF_INTEGER: - case PIPE_CAP_POINT_COORD_ORIGIN_UPPER_LEFT: case PIPE_CAP_PRIMITIVE_RESTART: case PIPE_CAP_PRIMITIVE_RESTART_FIXED_INDEX: case PIPE_CAP_VS_INSTANCEID: diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c index 43f7bed6db4..cbef66ad57c 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c @@ -243,7 +243,6 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_INDEP_BLEND_FUNC: case PIPE_CAP_FS_COORD_ORIGIN_UPPER_LEFT: case PIPE_CAP_FS_COORD_PIXEL_CENTER_HALF_INTEGER: - case PIPE_CAP_POINT_COORD_ORIGIN_UPPER_LEFT: case PIPE_CAP_PRIMITIVE_RESTART: case PIPE_CAP_PRIMITIVE_RESTART_FIXED_INDEX: case PIPE_CAP_VS_INSTANCEID: diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index c91ef7d8e4e..b196f881731 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -755,7 +755,6 @@ enum pipe_cap PIPE_CAP_FS_COORD_ORIGIN_LOWER_LEFT, PIPE_CAP_FS_COORD_PIXEL_CENTER_HALF_INTEGER, PIPE_CAP_FS_COORD_PIXEL_CENTER_INTEGER, - PIPE_CAP_POINT_COORD_ORIGIN_UPPER_LEFT, PIPE_CAP_DEPTH_CLIP_DISABLE, PIPE_CAP_DEPTH_CLIP_DISABLE_SEPARATE, PIPE_CAP_DEPTH_CLAMP_ENABLE, diff --git a/src/mesa/main/consts_exts.h b/src/mesa/main/consts_exts.h index 603fd10df39..72bedc434e7 100644 --- a/src/mesa/main/consts_exts.h +++ b/src/mesa/main/consts_exts.h @@ -993,8 +993,5 @@ struct gl_constants /** Use hardware accelerated GL_SELECT */ bool HardwareAcceleratedSelect; - - /** Origin of point coordinates. True if upper left, false if lower left. */ - bool PointCoordOriginUpperLeft; }; #endif diff --git a/src/mesa/program/prog_statevars.c b/src/mesa/program/prog_statevars.c index a87177de46c..8fb74e58e51 100644 --- a/src/mesa/program/prog_statevars.c +++ b/src/mesa/program/prog_statevars.c @@ -743,8 +743,7 @@ fetch_state(struct gl_context *ctx, const gl_state_index16 state[], case STATE_FB_PNTC_Y_TRANSFORM: { - bool flip_y = (ctx->Point.SpriteOrigin == GL_UPPER_LEFT) ^ - (ctx->Const.PointCoordOriginUpperLeft) ^ + bool flip_y = (ctx->Point.SpriteOrigin == GL_LOWER_LEFT) ^ (ctx->DrawBuffer->FlipY); value[0] = flip_y ? -1.0F : 1.0F; diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index dbbd768609e..71fffcc4bff 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -700,9 +700,6 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe, ctx->Point.MaxSize = MAX2(ctx->Const.MaxPointSize, ctx->Const.MaxPointSizeAA); - ctx->Const.PointCoordOriginUpperLeft = - screen->get_param(screen, PIPE_CAP_POINT_COORD_ORIGIN_UPPER_LEFT); - ctx->Const.NoClippingOnCopyTex = screen->get_param(screen, PIPE_CAP_NO_CLIP_ON_COPY_TEX);