Commit Graph

276 Commits

Author SHA1 Message Date
Matthew Endsley
05d70ea99d VR: Fix skewed viewports with buffered eye textures
Bug fix for #419

Viewport calculations need to take VR eye buffer size into
account. Noticable at the older 100px boundary. Skewing still
exists at newer 8px buffer, but is harder to notice.
Eventually causes pretty bad eye strain, though.

Easily reproduced by setting the buffer to something obscenely
large, such as 2048.
2015-06-05 02:12:24 -07:00
Matthew Endsley
1e604e8f38 VR: Add device resolution to HMD. Init at startup.
BREAKING: bgfx::getHMD() now returns a valid pointer
if the VR runtime was initialized. This is different
from existing behavior where getHMD returned NULL until
a bgfx::reset(... BGFX_RESET_HMD) was issued. Applications
must now check HMD::flags for the current state of the VR
runtime. The following code has the code change required:

`const bgfx::HMD* hmd = bgfx::getHMD()
if (NULL != hmd)`
becomes:
`const bgfx::HMD* hmd = bgfx::getHMD()
if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDRERING))
{
	// rendering logic
}`

See the updated examples for details.

This allows applications to create the appropriately
sized back buffer for the HMD device by using the new device
resolution fields HMD::deviceHeight and HMD::deviceWidth.
These values report the pixel resolution of the attached
HMD hardware.

This also allows applications to query the reported HMD
resolution immediately after bgfx::init. This prevents
the device from being cycled which generates rendring
artifacts on startup - namely flashing back to a black
screen and reseting the Health+Warning disaply.

This involves initialization the ovrHmd device on
initialization, but deferring rendering until
postReset has been called. This adds an addiional
memory overhead of 32k to builds defining BGFX_CONFIG_USE_OVR.
The overhead for current builds is ~1.9MB for calls to
ovr_Initialize, so the additional overhead is pretty
trivial (+1.8%)
2015-06-03 15:39:09 -07:00
Branimir Karadžić
ff01992cb7 Refactored uniform types. 2015-05-28 15:27:00 -07:00
Miodrag Milanovic
b925007b9d Fix for MINGW compile (nw) 2015-05-27 12:27:00 +02:00
Mike Popoloski
b32fc0ec27 Fixing display bug when using flip-sequential swap effect. 2015-05-24 13:29:21 -04:00
Branimir Karadžić
c4231c9731 Added framebuffer support test. 2015-05-18 12:39:42 -07:00
Matthew Endsley
b124334343 Map/Unmap constant buffers instead of using UpdateSubResource
(XB1) Drops GPU Busy % on spiral from 65% to 20%

(PC) Drops bgfx::d3d11::RendererContextD3D11::commitShaderConstants
CPU usage by 95% (11.21%->0.66%)

(PC) Overall decreases bgfx::d3d11::RenderContextD3D11::submit CPU
usage by another 34% (27.18%->17.90%)
2015-05-17 13:08:33 -07:00
Branimir Karadžić
4b18beb082 Rollback #389. 2015-05-15 20:08:38 -07:00
Branimir Karadžić
e348c08ebe D3D11: Disable map constant buffers. 2015-05-15 19:48:36 -07:00
Branimir Karadžić
991a9604cb Merge branch 'master' of github.com:bkaradzic/bgfx 2015-05-15 16:49:59 -07:00
Branimir Karadžić
c957a3dd51 Fixed timer query. 2015-05-15 16:49:53 -07:00
Matthew Endsley
51875f88b0 Map/Unmap constant buffers instead of using UpdateSubResource
(XB1) Drops GPU Busy % on spiral from 65% to 20%

(PC) Drops bgfx::d3d11::RendererContextD3D11::commitShaderConstants
CPU usage by 95% (11.21%->0.66%)

(PC) Overall decreases bgfx::d3d11::RenderContextD3D11::submit CPU
usage by another 34% (27.18%->17.90%)
2015-05-15 13:38:43 -07:00
Branimir Karadžić
2a49e5a143 Added flush after render reset flag. 2015-05-15 13:14:35 -07:00
Branimir Karadžić
a8ef81ae4b D3D11: Force draw indirect UAV format to be uint32x4. 2015-05-14 14:38:53 -07:00
Branimir Karadžić
f5d0a39dd0 Added buffer compute format flags. 2015-05-14 11:37:32 -07:00
Branimir Karadžić
7d50012dbe Added GPU timer. 2015-05-12 17:03:25 -07:00
Branimir Karadžić
146829b057 Commenting out RenderDoc interface release. Issue #380. 2015-05-11 18:23:02 -07:00
Lars Viklund
b965f730c0 Create backbuffer RTVs honoring multisampling
When adding sRGB support for the backbuffer render target in D3D11,
the now explicitly specified RTV desc specifies a TEXTURE2D dimension.
For multisampled targets, this needs to be TEXTURE2DMS dimension.

This solves it by branching on the presence of MSAA in the reset flags but
could envisionably be obtained by looking at the desc of the backbuffer.
2015-05-10 01:14:43 +02:00
Branimir Karadžić
1aea6fc415 Detect RenderDoc presence when it's injected. 2015-05-08 11:49:18 -07:00
Branimir Karadžić
f3f302a20b GL: Create sRGB textures. D3D9: Enumerate sRGB textures. 2015-05-05 16:34:13 -07:00
Branimir Karadžić
bd17691a41 Added sRGB texture caps. 2015-05-04 17:23:11 -07:00
Branimir Karadžić
76fa899c22 Merge pull request #373 from MikePopoloski/srgb
sRGB Support
2015-05-04 16:31:24 -07:00
Branimir Karadžić
d5c737924e Added back buffer depth stencil pointer to platform data. 2015-05-04 14:05:04 -07:00
MikePopoloski
8919b15468 Adding sRGB support for D3D11 and DDS. 2015-05-02 22:57:42 -04:00
Branimir Karadžić
3b66dfa5e8 Added indirect compute dispatch. 2015-05-01 14:54:23 -07:00
Branimir Karadžić
3a0f46fe3f Fixed MinGW build. 2015-04-29 17:53:06 -07:00
Branimir Karadžić
d763196407 D3D11: Added draw indirect support. 2015-04-29 17:18:51 -07:00
Branimir Karadžić
e5ed5db1f1 Exposed software rasterizer. 2015-04-24 14:57:00 -07:00
Branimir Karadžić
72086ef80a Fixed issue #360. 2015-04-24 09:33:36 -07:00
Andrew Johnson
158799e79c Fixes error C4701 in renderer_d3d11.cpp on VC12 build
renderer_d3d11.cpp(687, 0): error C4701: potentially uninitialized local variable 'adapter' used
2015-04-23 08:14:29 -07:00
Branimir Karadžić
0aa27c112f D3D11: Fixed default settings for user created device. 2015-04-22 15:30:01 -07:00
Branimir Karadžić
0da98e8645 Fixed creation of GLES3 textures with compute write flag. 2015-04-22 15:11:45 -07:00
Branimir Karadžić
f246fd29fa Added texture caps flag for compute image formats. 2015-04-21 15:44:16 -07:00
Branimir Karadžić
a528554e67 Cleanup passing platform window/context data. 2015-04-20 16:22:40 -07:00
Mike Popoloski
117571231a Fixing crash on WP8 ARM
The ViewState struct is so big that it blows out the stack on ARM devices. This change promotes it to a member variable.
2015-04-17 22:06:09 -04:00
James Darpinian
ee649f682e Fix crash on shutdown in HMD mode.
Presumably this crash is due to a bug in either the Oculus SDK or DirectX itself as changing the order of releasing these objects should not have any effect.
2015-04-17 10:55:47 -07:00
Branimir Karadžić
4bc2df890a Make D3D11 work with outdated DXSDK. 2015-04-16 19:47:13 -07:00
Branimir Karadžić
a3a1127b4f Fixed MinGW build. 2015-04-16 19:28:18 -07:00
Mike Popoloski
4bc2e4ec10 This MakeWindowAssociation block got moved to the wrong branch of #if. 2015-04-16 21:47:41 -04:00
Mike Popoloski
3ed95c81f2 Adding proper caps support for D3D11 feature levels. 2015-04-16 19:24:28 -04:00
Branimir Karadžić
6edd804f7a Cleanup. 2015-04-15 21:31:24 -07:00
Branimir Karadžić
66edb6c566 Moved HMD tracking into flip. Removed unnecessary frame data when using single-threaded renderer. 2015-04-15 20:59:00 -07:00
Branimir Karadžić
9d91d3bbbc Reversed instance data bindings. Issue #309. 2015-04-15 10:37:00 -07:00
Branimir Karadžić
63cc071a6e D3D11: Fixed frame buffer auto resizing. 2015-04-14 17:02:41 -07:00
Branimir Karadžić
c01a93e29d Added support for automatic texture scaling by backbuffer ratio on backbuffer resize. 2015-04-13 18:39:38 -07:00
Branimir Karadžić
9aa304f86f Cleanup. 2015-04-10 19:21:31 -07:00
Branimir Karadžić
da8a691163 Cleanup. 2015-04-09 21:57:05 -07:00
Branimir Karadžić
d94c38b7ef Fixed issue #325. 2015-04-09 20:03:59 -07:00
Branimir Karadžić
5cd313e342 Cleanup. 2015-04-08 23:25:17 -07:00
Branimir Karadžić
a3a1ed112b Fixed variable shadowing warning. 2015-04-08 22:40:51 -07:00