View Single Post
Old 03 March 2017, 17:41   #42
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
Originally Posted by buggs View Post
My apologies for not getting back into EAB earlier. I've got an idea why the windowed mode does not work in some configurations. Please try a test build: (changed WRENDER_DIRECT to 0) I've experimented with direct drawing to the window and while it worked on my setups as intended, undesired side effects sure are a possibility. Sadly, the much needed PIP is not widely available to Amiga users.
The DISPLAY=PIP with or without FULLPIP is still only showing a grey render area with your test version. I see now that the window mode DISPLAY=PIP is also likely a YUV mode even though it is on a 16 bit BGR workbench screen. The interface seems backward to me as DISPLAY=PIP gives a window while other options open a screen (but with FULLPIP it is like opening a screen). I'm surprised there is no non-PIP window mode too. The PIP window mode is friendly and can be moved around like any other intuition window with less than 1 fps difference in performance. Would it be possible to add a non-PIP window setting?

While testing I discovered another problem with RIVA v0.50 which is still present in the new version. Sometimes the rendered screen shows a garbled screen of diagonal banding with DISPLAY=HICOLOR. I looked at the screen modes being used.

320x256x16PC screen mode to display a 352x256 mpeg (not working)
320x240x16PC screen mode to display a 352x240 mpeg (not working)
320x240x16PC screen mode to display a 320x240 mpeg (working)

The video works here only when I have a P96 resolution which exactly matches the video resolution. P96 users are not guaranteed to have any particular screen resolution or display format. It may be worthwhile to look into the choice of best mode id and have centering or scaling if the video is narrower than the display (or clipping if the video resolution is larger than the display resolution). A non-PIP window mode and the ability to force a screen mode id and/or resolution could be helpful here for testing even though the switches may have to be changed.

Originally Posted by buggs View Post
RiVA as released on Aminet does work on 68020/30. Originally, I aligned the framebuffers and re-implemented the zero vector Motion Compensation (16x16 block copy) by Move16, which is 68040+. This got changed back at some point (not by me). As a consequence, it's a small bit slower on 040+ but still supports the older CPUs.
The performance advantage of MOVE16 depends greatly on whether the 16 byte block should be in the DCache afterward or not. If the block is going to be used from the DCache soon then there is little advantage to using MOVE16 as writes from it bypasses the DCache. On the other hand, it could be useful for large and/or streaming data which would otherwise flush the DCache.

I have heard there is a MOVE16 bug in some early versions of the 68040 as well but I have never heard anyone complain that MOVE16 was not working on their CPU.

Last edited by matthey; 03 March 2017 at 18:22.
matthey is offline  
Page generated in 0.05458 seconds with 9 queries