summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_raster.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-11-12 22:54:53 -0600
committerAlejandro Soto <alejandro@34project.org>2023-11-14 07:48:52 -0600
commitd2e51054b4361639d3c9ae9a69437b157f2fbf9f (patch)
tree83dd9d88b2abcaba70b9653c18ddba40facf4035 /rtl/gfx/gfx_raster.sv
parent58d647a047e8761ad1f619173ee51dd4b65831ac (diff)
rtl/gfx: pass barycentric coords from fine raster to fragment shading
Diffstat (limited to 'rtl/gfx/gfx_raster.sv')
-rw-r--r--rtl/gfx/gfx_raster.sv11
1 files changed, 11 insertions, 0 deletions
diff --git a/rtl/gfx/gfx_raster.sv b/rtl/gfx/gfx_raster.sv
index a51c4bb..ab282e7 100644
--- a/rtl/gfx/gfx_raster.sv
+++ b/rtl/gfx/gfx_raster.sv
@@ -12,6 +12,7 @@ module gfx_raster
output logic in_ready,
output frag_xy_lanes fragments,
+ output bary_lanes barys,
input logic out_ready,
output paint_lanes out_valid
);
@@ -69,6 +70,7 @@ module gfx_raster
);
frag_xy fragment_ij[`GFX_RASTER_SIZE][`GFX_RASTER_SIZE];
+ fixed_tri barys_ij[`GFX_RASTER_SIZE][`GFX_RASTER_SIZE];
logic[`GFX_FINE_LANES - 1:0] paint_ij, skid_paint_ij;
gfx_skid_buf #(.WIDTH(`GFX_FINE_LANES)) skid_paint
@@ -90,6 +92,7 @@ module gfx_raster
.pos(coarse_pos),
.corners(coarse_corners),
+ .barys(barys_ij[i][j]),
.paint(paint_ij[j * `GFX_RASTER_SIZE + i]),
.fragment(fragment_ij[i][j]),
.*
@@ -102,6 +105,14 @@ module gfx_raster
.stall(fine_stall),
.*
);
+
+ gfx_skid_buf #(.WIDTH($bits(fixed_tri))) skid_barys
+ (
+ .in(barys_ij[i][j]),
+ .out(barys[j * `GFX_RASTER_SIZE + i]),
+ .stall(fine_stall),
+ .*
+ );
end
end
endgenerate