pouët.net

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
__________________________________________________________