[Mesa-dev] [PATCH] radeon: Advertise correct GL_SAMPLES_PASSED value.
Marek Olšák
maraeo at gmail.com
Mon Jun 22 12:54:11 PDT 2015
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
For Gallium, a new PIPE_CAP or new get_xxx_param function will be needed.
Marek
On Mon, Jun 22, 2015 at 8:41 PM, Ian Romanick <idr at freedesktop.org> wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
>
> Commit b765119c changed the default value of all the counter bits to
> 64. However, older hardware only has 32 counter bits.
>
> This has only been build-tested. We don't have any tests that verify
> the advertised value against implementation behavior, so I don't know
> what additional testing could be done.
>
> NOTE: It appears that many Gallium drivers (at least r300 and i915g)
> have the same problem, but I don't see a way for the state-tracker to
> determine the counter size.
>
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> Cc: Marek Olšák <marek.olsak at amd.com>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> ---
> .../drivers/dri/radeon/radeon_common_context.c | 23 ++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c b/src/mesa/drivers/dri/radeon/radeon_common_context.c
> index 9699dcb..3d0ceda 100644
> --- a/src/mesa/drivers/dri/radeon/radeon_common_context.c
> +++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c
> @@ -194,6 +194,29 @@ GLboolean radeonInitContext(radeonContextPtr radeon,
>
> radeon_init_dma(radeon);
>
> + /* _mesa_initialize_context calls _mesa_init_queryobj which
> + * initializes all of the counter sizes to 64. The counters on r100
> + * and r200 are only 32-bits for occlusion queries. Those are the
> + * only counters, so set the other sizes to zero.
> + */
> + radeon->glCtx.Const.QueryCounterBits.SamplesPassed = 32;
> +
> + radeon->glCtx.Const.QueryCounterBits.TimeElapsed = 0;
> + radeon->glCtx.Const.QueryCounterBits.Timestamp = 0;
> + radeon->glCtx.Const.QueryCounterBits.PrimitivesGenerated = 0;
> + radeon->glCtx.Const.QueryCounterBits.PrimitivesWritten = 0;
> + radeon->glCtx.Const.QueryCounterBits.VerticesSubmitted = 0;
> + radeon->glCtx.Const.QueryCounterBits.PrimitivesSubmitted = 0;
> + radeon->glCtx.Const.QueryCounterBits.VsInvocations = 0;
> + radeon->glCtx.Const.QueryCounterBits.TessPatches = 0;
> + radeon->glCtx.Const.QueryCounterBits.TessInvocations = 0;
> + radeon->glCtx.Const.QueryCounterBits.GsInvocations = 0;
> + radeon->glCtx.Const.QueryCounterBits.GsPrimitives = 0;
> + radeon->glCtx.Const.QueryCounterBits.FsInvocations = 0;
> + radeon->glCtx.Const.QueryCounterBits.ComputeInvocations = 0;
> + radeon->glCtx.Const.QueryCounterBits.ClInPrimitives = 0;
> + radeon->glCtx.Const.QueryCounterBits.ClOutPrimitives = 0;
> +
> return GL_TRUE;
> }
>
> --
> 2.1.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list