summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_frag.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-11-12 01:37:02 -0600
committerAlejandro Soto <alejandro@34project.org>2023-11-14 07:18:16 -0600
commitbf6b4e2e8ebb63f6b8466bc98650ce75f3bdc79f (patch)
treed3fbcb5b8582fce317fdae71e4b32c9398266a6a /rtl/gfx/gfx_frag.sv
parent50440e25024b5d64b36396d2a5f5b8413d93eefc (diff)
rtl/gfx: implement fragment shading
Diffstat (limited to '')
-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(),
.*
);