summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_frag.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-11-12 22:18:10 -0600
committerAlejandro Soto <alejandro@34project.org>2023-11-14 07:48:52 -0600
commit58d647a047e8761ad1f619173ee51dd4b65831ac (patch)
treee3a08d6321da9a031caf81d84a59ca4f05823fa9 /rtl/gfx/gfx_frag.sv
parenta401d413ba766b01aa980a8e013c79500a490c2e (diff)
rtl/gfx: implement perspective-corrected barycentric coordinates
Diffstat (limited to 'rtl/gfx/gfx_frag.sv')
-rw-r--r--rtl/gfx/gfx_frag.sv34
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(),