mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
freedreno: clamp scissor bounds
We don't have negative scissor coords and maximum dimensions are: a3xx - 4096 a4xx+ - 16384 Fixes piglit tests: fbo-viewport viewport-clamp Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/30 Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8209>
This commit is contained in:
parent
da21eab142
commit
6ae726b799
3 changed files with 6 additions and 11 deletions
|
|
@ -508,7 +508,6 @@ spec/!opengl 2.1/polygon-stipple-fs: fail
|
|||
spec/!opengl 3.0/clearbuffer-depth: fail
|
||||
spec/!opengl 3.0/clearbuffer-depth-cs-probe: skip
|
||||
spec/!opengl 3.0/clearbuffer-stencil: fail
|
||||
spec/!opengl 3.0/viewport-clamp: crash
|
||||
spec/!opengl 3.1/minmax: fail
|
||||
spec/!opengl 3.1/primitive-restart-xfb generated: fail
|
||||
spec/!opengl 3.1/primitive-restart-xfb written: fail
|
||||
|
|
@ -841,7 +840,6 @@ spec/arb_framebuffer_object/arb_framebuffer_object-depth-stencil-blit stencil gl
|
|||
spec/arb_framebuffer_object/arb_framebuffer_object-depth-stencil-blit stencil gl_stencil_index16: fail
|
||||
spec/arb_framebuffer_object/arb_framebuffer_object-depth-stencil-blit stencil gl_stencil_index4: fail
|
||||
spec/arb_framebuffer_object/arb_framebuffer_object-depth-stencil-blit stencil gl_stencil_index8: fail
|
||||
spec/arb_framebuffer_object/fbo-viewport: crash
|
||||
spec/arb_framebuffer_object/framebuffer-blit-levels draw stencil: fail
|
||||
spec/arb_framebuffer_object/framebuffer-blit-levels read stencil: fail
|
||||
spec/arb_framebuffer_srgb/blit renderbuffer linear msaa disabled clear: fail
|
||||
|
|
|
|||
|
|
@ -869,7 +869,6 @@ spec/!opengl 2.1/pbo/test_polygon_stip: fail
|
|||
spec/!opengl 2.1/polygon-stipple-fs: fail
|
||||
spec/!opengl 3.0/clearbuffer-depth: fail
|
||||
spec/!opengl 3.0/clearbuffer-stencil: fail
|
||||
spec/!opengl 3.0/viewport-clamp: crash
|
||||
spec/!opengl 3.1/primitive-restart-xfb generated: fail
|
||||
spec/!opengl 3.2/layered-rendering/clear-depth: crash
|
||||
spec/!opengl 3.2/pointsprite-origin: fail
|
||||
|
|
@ -1069,7 +1068,6 @@ spec/arb_fragment_program/fp-indirections: skip
|
|||
spec/arb_fragment_program/sparse-samplers: crash
|
||||
spec/arb_fragment_shader_interlock/arb_fragment_shader_interlock-image-load-store: skip
|
||||
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-params/dsa: skip
|
||||
spec/arb_framebuffer_object/fbo-viewport: crash
|
||||
spec/arb_framebuffer_srgb/blit renderbuffer linear msaa disabled clear: fail
|
||||
spec/arb_framebuffer_srgb/blit renderbuffer linear msaa disabled render: fail
|
||||
spec/arb_framebuffer_srgb/blit renderbuffer linear msaa enabled clear: fail
|
||||
|
|
|
|||
|
|
@ -331,14 +331,13 @@ fd_set_viewport_states(struct pipe_context *pctx,
|
|||
swap(miny, maxy);
|
||||
}
|
||||
|
||||
debug_assert(miny >= 0);
|
||||
debug_assert(maxy >= 0);
|
||||
const float max_dims = is_a3xx(ctx->screen) ? 4096.f : 16384.f;
|
||||
|
||||
/* Convert to integer and round up the max bounds. */
|
||||
scissor->minx = minx;
|
||||
scissor->miny = miny;
|
||||
scissor->maxx = ceilf(maxx);
|
||||
scissor->maxy = ceilf(maxy);
|
||||
/* Clamp, convert to integer and round up the max bounds. */
|
||||
scissor->minx = CLAMP(minx, 0.f, max_dims);
|
||||
scissor->miny = CLAMP(miny, 0.f, max_dims);
|
||||
scissor->maxx = CLAMP(ceilf(maxx), 0.f, max_dims);
|
||||
scissor->maxy = CLAMP(ceilf(maxy), 0.f, max_dims);
|
||||
|
||||
ctx->dirty |= FD_DIRTY_VIEWPORT;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue