summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_defs.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-11-02 20:36:51 -0600
committerAlejandro Soto <alejandro@34project.org>2023-11-10 01:42:47 -0600
commit85fc7268a690e38ecb7f3b04dbfb8d70f2570a79 (patch)
tree5e7ba468b1c8e68c3835c59c83a10d285787ea37 /rtl/gfx/gfx_defs.sv
parent814eb9d024a928380815a8a830eee3b86d71cf75 (diff)
rtl/gfx: implement perspective division
Diffstat (limited to '')
-rw-r--r--rtl/gfx/gfx_defs.sv16
1 files changed, 12 insertions, 4 deletions
diff --git a/rtl/gfx/gfx_defs.sv b/rtl/gfx/gfx_defs.sv
index 1fe0df2..6e96b4e 100644
--- a/rtl/gfx/gfx_defs.sv
+++ b/rtl/gfx/gfx_defs.sv
@@ -11,10 +11,18 @@
`define FP_MUL_STAGES 5 // ~144 LUTs ~1 bloque DSP
`define FP_INV_STAGES 3 // ~178 LUTs ~1 bloque DSP
-typedef logic[`FLOAT_BITS - 1:0] fp;
-typedef fp vec2[2];
-typedef fp vec4[`FLOATS_PER_VEC];
-typedef vec4 mat4[`VECS_PER_MAT];
+typedef logic[`FLOAT_BITS - 1:0] fp;
+typedef fp vec2[2];
+typedef fp vec4[`FLOATS_PER_VEC];
+typedef fp[`FLOATS_PER_VEC - 1:0] vec4_packed;
+typedef vec4 mat4[`VECS_PER_MAT];
+
+`define FP_UNIT 16'h3c00
+
+typedef struct packed
+{
+ fp x, y, z, w;
+} attr4;
typedef logic[1:0] index4;