st/mesa: report correct precision information for low/medium/high ints
When we have native integers, these have full precision. Whether they're low/medium/high isn't piped through the TGSI yet, but eventually those might have differing precisions. For now they're just 32-bit ints. Fixes the following dEQP tests: dEQP-GLES3.functional.state_query.shader.precision_vertex_highp_int dEQP-GLES3.functional.state_query.shader.precision_fragment_highp_int which expected highp ints to have full 32-bit precision, not the default 23-bit float precision. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -253,6 +253,13 @@ void st_init_limits(struct pipe_screen *screen,
|
|||||||
pc->MaxLocalParams = MIN2(pc->MaxParameters, MAX_PROGRAM_LOCAL_PARAMS);
|
pc->MaxLocalParams = MIN2(pc->MaxParameters, MAX_PROGRAM_LOCAL_PARAMS);
|
||||||
pc->MaxEnvParams = MIN2(pc->MaxParameters, MAX_PROGRAM_ENV_PARAMS);
|
pc->MaxEnvParams = MIN2(pc->MaxParameters, MAX_PROGRAM_ENV_PARAMS);
|
||||||
|
|
||||||
|
if (screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_INTEGERS)) {
|
||||||
|
pc->LowInt.RangeMin = 31;
|
||||||
|
pc->LowInt.RangeMax = 30;
|
||||||
|
pc->LowInt.Precision = 0;
|
||||||
|
pc->MediumInt = pc->HighInt = pc->LowInt;
|
||||||
|
}
|
||||||
|
|
||||||
options->EmitNoNoise = TRUE;
|
options->EmitNoNoise = TRUE;
|
||||||
|
|
||||||
/* TODO: make these more fine-grained if anyone needs it */
|
/* TODO: make these more fine-grained if anyone needs it */
|
||||||
|
Reference in New Issue
Block a user