Commit graph

23 commits

Author SHA1 Message Date
Micah Dowty 4443a73481 Revert launch algorithm, the size optimization caused a gameplay randomness regression. 2011-03-24 07:00:14 +00:00
Micah Dowty 9605f56e5f Random size optimizations 2011-03-24 06:01:28 +00:00
Micah Dowty 6ad70d0e71 Keyboard size optimizations 2011-03-23 22:38:14 +00:00
Micah Dowty 962563d1e7 A handful of size optimizations for -DREALLY_TINY 2011-03-03 19:37:13 +00:00
Kurt Daverman 2a7c8577f5 Metalkit test 2dmark can trigger VMX host panic when it detects SVGA
FIFO is re-initialized while vmx is processing it.  To fix this issue,
I suggest metalkit SVGA_SetMode should handle mode transitions and
new function SVGA_Enable should initialize the FIFO.
2010-10-12 19:35:42 +00:00
Micah Dowty 4a5a01ab57 Patch from Jose Fonseca: Specify a nonzero light range in the bunnies example
Otherwise the bunnies are all black with the D3D backend and the
software renderer backend.

GL backend apparently interprets a zero light range differently, and
draws them white even without this change.
2010-08-16 16:46:29 +00:00
Micah Dowty 3a3ad0e7dc Sync to latest Metalkit source. Includes Kurt's fix for PCI_GetBARAddr(). 2010-08-05 19:55:08 +00:00
Micah Dowty a8eafa801d Update all binaries 2010-02-16 21:56:30 +00:00
Micah Dowty 791ddd6a8f Applying a patch from Keith Whitwell: Adds some svga3dutil support for surface flags, and uses those flags in Bunnies to specify the static VB/IB usage of its buffers. This is the same behaviour we expect from well-behaved guest drivers, and it makes Bunnies a better tool for performance testing various host configurations. 2010-02-10 22:16:35 +00:00
Micah Dowty 28e788a308 Adding a simple test for output gamma. 2009-10-29 19:36:41 +00:00
Micah Dowty a8adcf8408 Update to latest Metalkit sources. Includes a fix for BIOS triple-fault issues. 2009-10-23 23:58:13 +00:00
Micah Dowty eabc723c58 Remove PACKED from structure definitions. It shouldn't be necessary (we keep our data aligned anyway), and it isn't sufficient to actually enable packing on MSVC. 2009-10-22 20:34:29 +00:00
Micah Dowty 992c2d5ea1 Jose requested an open-source-friendly version of our svga3d_caps header. This header includes some definitions for interpreting the 3D-specific capability blocks in BAR2. 2009-10-22 20:24:40 +00:00
Micah Dowty 68478eab4b There are many new tests and examples that we wrote internally at VMware,
but couldn't release immediately since they depended on virtual GPU features
which were not yet publicly released in any products.  This checkin moves those
features from our internal repository to the open source repository. Future   
development on these tests and examples will take place directly in the open
source repository.

The primary feature added by this patch is 'Screen Object', a new dynamic
display management extension supported by Workstation 7.0 and Fusion 3.0.
See the README for a quick explanation.
2009-10-21 20:20:49 +00:00
Micah Dowty aab0cde61f To get better test coverage of the host-side DMA code, alternate between using Fences and legacy Sync. 2009-07-13 23:12:04 +00:00
Micah Dowty 15fd4340d6 SVGA refdriver: compile fix for gcc strict aliasing
Newer versions of GCC have additional strict alias checking,
and so the refdriver's IRQ handler would fail to compile.
Work around this problem (and avoid unwanted compiler
optimizations to boot) by using memcpy instead of struct
assignment.
2009-07-01 21:02:40 +00:00
Micah Dowty adf2dcf69d Update binaries 2009-05-07 22:37:50 +00:00
Micah Dowty 99a767c5d9 Hopefully fix Metalkit refdriver SVGA_WaitForIRQ hangs
There's been a longstanding bug in the IRQ handling code
in the Metalkit version of the SVGA reference driver, which
occasionally caused tests to hang.

I looked at the disassembly of SVGA_WaitForIRQ and friends, and
I found one big problem and one smaller problem:

The 'switchContext' flag is used to tell the IRQ handler
whether it should branch to the saved context or not. This
value *must* be written before we halt, or we can deadlock.
Unfortunately, the value wasn't marked as 'volatile', and the
compiler was optimizing out this assignment entirely! This
means that 'flags' will never get set, and we'll be in an
infinite loop.

Given this bug, I'm not sure why WaitForIRQ ever worked.
It's possible that we were fine if the IRQ had already arrived
by the time WaitForIRQ was called, but we'd deadlock if we
actually ended up waiting. If this is the case, it also means
that fence-stress isn't doing a very good job of stressing the
IRQ code.

The other, much less severe problem: The stack frames for
WaitForIRQInternal and SaveContext may have been partially
overlapping, since gcc was allocating 0x10 bytes on the
stack before calling SaveContext. The proper solution is
probably just to rewrite all of this in assembly, but for
now I just increased the number of padding words on the
stack by adding extra NULL parameters to WaitForIRQInternal.
2009-05-07 22:35:49 +00:00
Micah Dowty 64070c7b8e Add an example for implementing 'Fit Guest' functionality. 2009-04-17 21:55:24 +00:00
Micah Dowty 3e3ba62112 Add a simple example for the TCLO protocol support in vmbackdoor. 2009-04-17 21:52:08 +00:00
Micah Dowty 98472b0b85 Enhance lib/util/vmbackdoor with some basic support for
the TCLO protocol that the host uses to push asynchronous
messages back into the VM.
2009-04-17 21:49:50 +00:00
Micah Dowty 813ac81f53 Add a document on Metalkit debugging 2009-04-13 08:57:23 +00:00
Micah Dowty 75775e0dff Initial revision 2009-04-13 07:05:42 +00:00