plattenbau 3000 avx by Kuemmel [web]
__________________________________________________________
'Plattenbau 3000 AVX' =>
a 256 byte intro by Kuemmel for Deadline 2023
__________________________________________________________
'to AND or NOT to AND'...a binary raycasting rhapsody at
1024x768 with brute force AVX code showing 8 variations
of binary object combinations.
Some history on this...
...this is an upgrade/update to my 'Plattenbau 3000 SSE'
release at Revision 2020. Thanx to Jin X efforts to get
a linear framebuffer, pmode/AVX to work under DOS with
just about 45 Bytes.
I invested some time to make an AVX version as it offers
more or less double the speed of the SSE effort. I used
the extra speed to have a more deep raycasting, so not
256 steps like in the SSE version, now it's 512.
Even when the visuals are not too different to the
SSE version I wanted to publish this also as a kind
of easy access source code for experimenting with
AVX in sizecoding.
Special thanx of course go to Jin X, without him this
wouldn't be posssible and also to TomCat for additional
testing and video capture !
'Plattenbau' is German, in English it's something like
a word for those ugly big block appartment buildings :-)
- runs on FreeDOS, it's best to download from here
and prepare a USB boot stick => https://rufus.ie/de/
- needs high spec CPU with AVX2 instruction set
- can benefit from the integrated CPU graphics core
- uses a resolution of 1024 x 768 x 8Bits
- assembles with Flat ASSEmbler
Check out the 'extra' folder:
All versions here don't use vsync and stop after
rendering 1024 frames
- pa0 16 pixel loop - base version
- pa1 16 pixel loop - early exit if all 'hit'
- pa2 32 pixel loop - early exit if all 'hit'
- pa3 32 pixel loop - no mul in loop, optimized x-offset,
early exit if all 'hit'
Find my results in a graph there.
All the faster versions just take up more bytes, but
especially the 32 pixel versions show what a major impact
out-of-order tech has to keep the instruction units
busy...may be something to use for a 512'er or 1024'er.
Cheers,
Kuemmel
Greetings to sensenstahl,hellmood,gentlemen,t$,bartman,
andy,hardy,gargaj,tomcatabaddon,harekiet,xq,dojoe,
saga musix,kaomau,rrrola,superogue,blossom,exoticorn
jeffrey,kieran,progen,jin x,the risc os community
& and all the tiny intro and demo coders out there
__________________________________________________________
s
: ,$
% dS'
&ooS;_
$ "s,
; *,_
'~+
_______________
kuemmel
__________________________________________________________
e-mail: michael.kuebel@googlemail.com
web...: www.mikusite.de
__________________________________________________________
[ back to the prod ]
