[graphics] first half of shadow renderer (#1246)

* start on dma stuff

* temp

* temp

* add shadow cpu
This commit is contained in:
water111
2022-03-22 21:42:37 -04:00
committed by GitHub
parent 299b0c22bc
commit 4a0ac6c155
53 changed files with 3634 additions and 115 deletions
+41 -32
View File
@@ -1157,43 +1157,52 @@
(gp-7 (-> s5-3 base))
)
(let* ((v1-137 s5-3)
(a0-43 (-> v1-137 base))
(a0-43 (the-as object (-> v1-137 base)))
)
(set! (-> (the-as (pointer int64) a0-43)) #x10000004)
(s.w! (+ a0-43 8) 0)
(let ((a1-23 #x50000004))
(s.w! (+ a0-43 12) a1-23)
)
(set! (-> v1-137 base) (&+ a0-43 16))
(set! (-> (the-as dma-packet a0-43) dma) (new 'static 'dma-tag :qwc #x4 :id (dma-tag-id cnt)))
(set! (-> (the-as dma-packet a0-43) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet a0-43) vif1) (new 'static 'vif-tag :imm #x4 :cmd (vif-cmd direct) :msk #x1))
(set! (-> v1-137 base) (&+ (the-as pointer a0-43) 16))
)
(let* ((v1-138 s5-3)
(a0-45 (-> v1-138 base))
(a0-45 (the-as object (-> v1-138 base)))
)
(set! (-> (the-as (pointer uint64) a0-45)) (make-u128 0 (the-as uint #x3000000000008001)))
(let ((a1-26 (the-as uint #xeeeeeeeeeeeeeeee)))
(s.d! (+ a0-45 8) a1-26)
)
(set! (-> v1-138 base) (&+ a0-45 16))
(set! (-> (the-as gs-gif-tag a0-45) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x3))
(set! (-> (the-as gs-gif-tag a0-45) regs)
(new 'static 'gif-tag-regs
:regs0 (gif-reg-id a+d)
:regs1 (gif-reg-id a+d)
:regs2 (gif-reg-id a+d)
:regs3 (gif-reg-id a+d)
:regs4 (gif-reg-id a+d)
:regs5 (gif-reg-id a+d)
:regs6 (gif-reg-id a+d)
:regs7 (gif-reg-id a+d)
:regs8 (gif-reg-id a+d)
:regs9 (gif-reg-id a+d)
:regs10 (gif-reg-id a+d)
:regs11 (gif-reg-id a+d)
:regs12 (gif-reg-id a+d)
:regs13 (gif-reg-id a+d)
:regs14 (gif-reg-id a+d)
:regs15 (gif-reg-id a+d)
)
)
(set! (-> v1-138 base) (&+ (the-as pointer a0-45) 16))
)
(let* ((v1-139 s5-3)
(a0-47 (-> v1-139 base))
)
(set! (-> (the-as (pointer int64) a0-47)) #x10001c0)
(set! (-> (the-as (pointer gs-zbuf) a0-47) 0) (new 'static 'gs-zbuf :zbp #x1c0 :psm (gs-psm ct24)))
(let ((a1-28 78))
(s.d! (+ a0-47 8) a1-28)
)
(let ((a1-29 #x30003))
(s.d! (+ a0-47 16) a1-29)
)
(let ((a1-30 71))
(s.d! (+ a0-47 24) a1-30)
)
(let ((a1-31 68))
(s.d! (+ a0-47 32) a1-31)
)
(let ((a1-32 66))
(s.d! (+ a0-47 40) a1-32)
(s.d! (+ (the-as (pointer gs-reg) a0-47) 8) a1-28)
)
(set! (-> (the-as (pointer gs-test) a0-47) 2)
(new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always))
)
(set! (-> (the-as (pointer gs-reg64) a0-47) 3) (gs-reg64 test-1))
(set! (-> (the-as (pointer gs-alpha) a0-47) 4) (new 'static 'gs-alpha :b #x1 :d #x1))
(set! (-> (the-as (pointer gs-reg64) a0-47) 5) (gs-reg64 alpha-1))
(set! (-> v1-139 base) (&+ a0-47 48))
)
(screen-gradient
@@ -1204,11 +1213,11 @@
(-> *time-of-day-context* erase-color)
)
(let ((a3-3 (-> s5-3 base)))
(let ((v1-144 (-> s5-3 base)))
(set! (-> (the-as (pointer int64) v1-144)) #x20000000)
(s.w! (+ v1-144 8) 0)
(s.w! (+ v1-144 12) 0)
(set! (-> s5-3 base) (&+ v1-144 16))
(let ((v1-144 (the-as object (-> s5-3 base))))
(set! (-> (the-as dma-packet v1-144) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
(set! (-> (the-as dma-packet v1-144) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-144) vif1) (new 'static 'vif-tag))
(set! (-> s5-3 base) (&+ (the-as pointer v1-144) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
+2 -2
View File
@@ -1493,8 +1493,8 @@
(zero? (-> obj draw cur-lod))
(logtest? (-> obj draw status) (draw-status was-drawn))
)
(dummy-15 gp-0 (-> obj draw origin) -4096.0 4096.0 32768.0)
(dummy-14 gp-0)
(collide-to-find-planes gp-0 (-> obj draw origin) -4096.0 4096.0 32768.0)
(update-direction-from-time-of-day gp-0)
)
(else
(let ((v1-10 gp-0))