summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_frag.sv
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/gfx/gfx_frag.sv')
-rw-r--r--rtl/gfx/gfx_frag.sv30
1 files changed, 27 insertions, 3 deletions
diff --git a/rtl/gfx/gfx_frag.sv b/rtl/gfx/gfx_frag.sv
index 3598ed9..b4481ce 100644
--- a/rtl/gfx/gfx_frag.sv
+++ b/rtl/gfx/gfx_frag.sv
@@ -27,7 +27,7 @@ module gfx_frag
logic addr_ready, addr_stall;
- gfx_pipeline_flow #(.STAGES(`GFX_FRAG_ADDR_STAGES)) addr_flow
+ gfx_pipeline_flow #(.STAGES(`GFX_FRAG_SHADE_STAGES)) addr_flow
(
.stall(addr_stall),
.in_ready(addr_ready),
@@ -37,12 +37,36 @@ module gfx_frag
.*
);
+ linear_coord linear;
+
gfx_frag_addr addr
(
+ .frag(funnel_frag),
.stall(addr_stall),
+ .*
+ );
- .frag(funnel_frag),
- .linear(),
+ localparam ADDR_WAIT_Z_STAGES = `GFX_FRAG_SHADE_STAGES - `GFX_FRAG_ADDR_STAGES;
+
+ gfx_pipes #(.WIDTH($bits(linear_coord)), .DEPTH(ADDR_WAIT_Z_STAGES)) addr_pipes
+ (
+ .in(linear),
+ .out(),
+ .stall(addr_stall),
+ .*
+ );
+
+ gfx_frag_shade shade
+ (
+ .stall(addr_stall),
+
+ .b1(),
+ .b2(),
+ .color(),
+
+ .argb0(),
+ .argb1_argb0(),
+ .argb2_argb0(),
.*
);