diff options
| author | Alejandro Soto <alejandro@34project.org> | 2023-11-12 22:54:53 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2023-11-14 07:48:52 -0600 |
| commit | d2e51054b4361639d3c9ae9a69437b157f2fbf9f (patch) | |
| tree | 83dd9d88b2abcaba70b9653c18ddba40facf4035 /rtl/gfx/gfx_raster.sv | |
| parent | 58d647a047e8761ad1f619173ee51dd4b65831ac (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.sv | 11 |
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 |
