From adabbf5f30729092a64fa1059bbc7d7b09d6b24e Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sun, 29 Oct 2023 15:35:42 -0600 Subject: rtl/gfx: implement double-buffered scanout --- rtl/gfx/gfx.sv | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'rtl/gfx/gfx.sv') diff --git a/rtl/gfx/gfx.sv b/rtl/gfx/gfx.sv index bae65e3..7749c50 100644 --- a/rtl/gfx/gfx.sv +++ b/rtl/gfx/gfx.sv @@ -17,7 +17,13 @@ module gfx output logic[25:0] mem_address, output logic mem_read, mem_write, - output logic[15:0] mem_writedata + output logic[15:0] mem_writedata, + + input logic scan_ready, + output logic scan_valid, + scan_endofpacket, + scan_startofpacket, + output rgb30 scan_data ); fp readdata, writedata; @@ -60,6 +66,43 @@ module gfx .* ); + logic frag_mask, scan_mask; + + gfx_masks masks + ( + .frag_mask_set(0), + .frag_mask_write(0), + .frag_mask_read_addr(), + .frag_mask_write_addr(), + .* + ); + + logic swap_buffers; + rgb24 clear_color; + + assign swap_buffers = 0; + assign clear_color.r = 255; + assign clear_color.g = 0; + assign clear_color.b = 0; + + linear_coord scan_mask_addr; + + logic scanout_read_tmp; + + gfx_scanout scanout + ( + .mask(scan_mask), + .mask_addr(scan_mask_addr), + + .fb_read(scanout_read_tmp), + .fb_address(), + .fb_readdata(), + .fb_waitrequest(0), + .fb_readdatavalid(scanout_read_tmp), + + .* + ); + logic[63:0] cnt_cycles, cnt_trans, snp_cycles, snp_trans; logic[24:0] cnt_addr; logic[31:0] cnt_done, cnt_start; -- cgit v1.2.3