diff options
| author | Alejandro Soto <alejandro@34project.org> | 2023-11-12 22:18:10 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2023-11-14 07:48:52 -0600 |
| commit | 58d647a047e8761ad1f619173ee51dd4b65831ac (patch) | |
| tree | e3a08d6321da9a031caf81d84a59ca4f05823fa9 /rtl/gfx/gfx_frag.sv | |
| parent | a401d413ba766b01aa980a8e013c79500a490c2e (diff) | |
rtl/gfx: implement perspective-corrected barycentric coordinates
Diffstat (limited to 'rtl/gfx/gfx_frag.sv')
| -rw-r--r-- | rtl/gfx/gfx_frag.sv | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/rtl/gfx/gfx_frag.sv b/rtl/gfx/gfx_frag.sv index b4481ce..79fb2b4 100644 --- a/rtl/gfx/gfx_frag.sv +++ b/rtl/gfx/gfx_frag.sv @@ -20,17 +20,17 @@ module gfx_frag gfx_frag_funnel funnel ( .frag(funnel_frag), - .out_ready(addr_ready), + .out_ready(frag_ready), .out_valid(funnel_valid), .* ); - logic addr_ready, addr_stall; + logic frag_ready, frag_stall; - gfx_pipeline_flow #(.STAGES(`GFX_FRAG_SHADE_STAGES)) addr_flow + gfx_pipeline_flow #(.STAGES(`GFX_FRAG_STAGES)) addr_flow ( - .stall(addr_stall), - .in_ready(addr_ready), + .stall(frag_stall), + .in_ready(frag_ready), .in_valid(funnel_valid), .out_ready(1), .out_valid(), @@ -42,28 +42,34 @@ module gfx_frag gfx_frag_addr addr ( .frag(funnel_frag), - .stall(addr_stall), + .stall(frag_stall), .* ); - localparam ADDR_WAIT_Z_STAGES = `GFX_FRAG_SHADE_STAGES - `GFX_FRAG_ADDR_STAGES; + localparam ADDR_WAIT_STAGES = `GFX_FRAG_STAGES - `GFX_FRAG_ADDR_STAGES; - gfx_pipes #(.WIDTH($bits(linear_coord)), .DEPTH(ADDR_WAIT_Z_STAGES)) addr_pipes + gfx_pipes #(.WIDTH($bits(linear_coord)), .DEPTH(ADDR_WAIT_STAGES)) addr_pipes ( .in(linear), .out(), - .stall(addr_stall), + .stall(frag_stall), .* ); - gfx_frag_shade shade + fixed b1, b2; + + gfx_frag_bary bary ( - .stall(addr_stall), + .ws(), + .edges(), + .stall(frag_stall), + .* + ); - .b1(), - .b2(), + gfx_frag_shade shade + ( + .stall(frag_stall), .color(), - .argb0(), .argb1_argb0(), .argb2_argb0(), |
