From 716517cc040285268d8a2a3f029ff92c550f71a9 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Thu, 24 Dec 2020 11:53:17 +0100 Subject: [PATCH] coarse,binning: organize bins into width_in_bins x height_in_bins The binning shader supports up to N_TILE bins. To efficiently cover wide or tall viewports, convert the rigid N_TILE_X x N_TILE_Y bin layout to a variable width_in_bins x height_in_bins layout. Signed-off-by: Elias Naur --- piet-gpu/shader/binning.comp | 14 ++++++++------ piet-gpu/shader/binning.spv | Bin 11704 -> 12232 bytes piet-gpu/shader/coarse.comp | 3 ++- piet-gpu/shader/coarse.spv | Bin 39892 -> 40060 bytes 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/piet-gpu/shader/binning.comp b/piet-gpu/shader/binning.comp index 17acc76..6812fb6 100644 --- a/piet-gpu/shader/binning.comp +++ b/piet-gpu/shader/binning.comp @@ -78,16 +78,18 @@ void main() { // trying to keep divergence low. // Right now, it's just a bbox, but we'll get finer with // segments. - x0 = clamp(x0, 0, N_TILE_X); - x1 = clamp(x1, x0, N_TILE_X); - y0 = clamp(y0, 0, N_TILE_Y); - y1 = clamp(y1, y0, N_TILE_Y); + uint width_in_bins = (conf.width_in_tiles + N_TILE_X - 1)/N_TILE_X; + uint height_in_bins = (conf.height_in_tiles + N_TILE_Y - 1)/N_TILE_Y; + x0 = clamp(x0, 0, int(width_in_bins)); + x1 = clamp(x1, x0, int(width_in_bins)); + y0 = clamp(y0, 0, int(height_in_bins)); + y1 = clamp(y1, y0, int(height_in_bins)); if (x0 == x1) y1 = y0; int x = x0, y = y0; uint my_slice = gl_LocalInvocationID.x / 32; uint my_mask = 1 << (gl_LocalInvocationID.x & 31); while (y < y1) { - atomicOr(bitmaps[my_slice][y * N_TILE_X + x], my_mask); + atomicOr(bitmaps[my_slice][y * width_in_bins + x], my_mask); x++; if (x == x1) { x = x0; @@ -128,7 +130,7 @@ void main() { x = x0; y = y0; while (y < y1) { - uint bin_ix = y * N_TILE_X + x; + uint bin_ix = y * width_in_bins + x; uint out_mask = bitmaps[my_slice][bin_ix]; if ((out_mask & my_mask) != 0) { uint idx = bitCount(out_mask & (my_mask - 1)); diff --git a/piet-gpu/shader/binning.spv b/piet-gpu/shader/binning.spv index d92b919acd88f4ff32a0e1de8cf29812140c1727..7974dac05e70575047571fb057628c0f020a5ae7 100644 GIT binary patch literal 12232 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 literal 39892 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