From 2fdea069ac3e0749b88438b450ff25286c5371d0 Mon Sep 17 00:00:00 2001 From: bkaradzic Date: Sun, 15 Dec 2013 12:30:23 -0800 Subject: [PATCH 1/2] Added fragment depth caps flag. --- include/bgfx.h | 1 + src/renderer_d3d11.cpp | 1 + src/renderer_d3d9.cpp | 1 + src/renderer_gl.cpp | 6 +++++- 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/bgfx.h b/include/bgfx.h index b29c15cc..24fcaf08 100644 --- a/include/bgfx.h +++ b/include/bgfx.h @@ -246,6 +246,7 @@ #define BGFX_CAPS_VERTEX_ATTRIB_HALF UINT64_C(0x0000000000020000) #define BGFX_CAPS_INSTANCING UINT64_C(0x0000000000040000) #define BGFX_CAPS_RENDERER_MULTITHREADED UINT64_C(0x0000000000080000) +#define BGFX_CAPS_FRAGMENT_DEPTH UINT64_C(0x0000000000100000) /// #define BGFX_HANDLE(_name) \ diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index aac27c3d..3a49b5e8 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -491,6 +491,7 @@ namespace bgfx | BGFX_CAPS_INSTANCING | BGFX_CAPS_TEXTURE_3D | BGFX_CAPS_VERTEX_ATTRIB_HALF + | BGFX_CAPS_FRAGMENT_DEPTH ); g_caps.maxTextureSize = D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index fdb7939a..dd4b120c 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -410,6 +410,7 @@ namespace bgfx g_caps.supported |= ( 0 | BGFX_CAPS_TEXTURE_3D | BGFX_CAPS_VERTEX_ATTRIB_HALF + | BGFX_CAPS_FRAGMENT_DEPTH ); g_caps.maxTextureSize = bx::uint32_min(m_caps.MaxTextureWidth, m_caps.MaxTextureHeight); diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index 99dd1401..b54eee21 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -1775,7 +1775,7 @@ namespace bgfx void writeString(bx::WriterI* _writer, const char* _str) { - bx::write(_writer, _str, strlen(_str) ); + bx::write(_writer, _str, (int32_t)strlen(_str) ); } const char* findMatch(const char* _str, const char* _word) @@ -2597,6 +2597,10 @@ namespace bgfx ? BGFX_CAPS_VERTEX_ATTRIB_HALF : 0 ; + g_caps.supported |= !!(BGFX_CONFIG_RENDERER_OPENGL|BGFX_CONFIG_RENDERER_OPENGLES3)|s_extension[Extension::EXT_frag_depth].m_supported + ? BGFX_CAPS_FRAGMENT_DEPTH + : 0 + ; g_caps.maxTextureSize = glGet(GL_MAX_TEXTURE_SIZE); s_renderCtx->m_vaoSupport = !!BGFX_CONFIG_RENDERER_OPENGLES3 From f4260eb405263ed201308549a237ab072849c968 Mon Sep 17 00:00:00 2001 From: bkaradzic Date: Mon, 16 Dec 2013 21:34:33 -0800 Subject: [PATCH 2/2] GL: Added num mips to sampler state cache hash value. --- include/bgfx.h | 3 ++- src/renderer_gl.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/bgfx.h b/include/bgfx.h index 24fcaf08..6ae2d7d1 100644 --- a/include/bgfx.h +++ b/include/bgfx.h @@ -190,7 +190,8 @@ #define BGFX_TEXTURE_MIP_POINT UINT32_C(0x00100000) #define BGFX_TEXTURE_MIP_SHIFT 20 #define BGFX_TEXTURE_MIP_MASK UINT32_C(0x00100000) -#define BGFX_TEXTURE_RESERVED_MASK UINT32_C(0xf0000000) +#define BGFX_TEXTURE_RESERVED_SHIFT 24 +#define BGFX_TEXTURE_RESERVED_MASK UINT32_C(0xff000000) /// #define BGFX_RENDER_TARGET_NONE UINT32_C(0x00000000) diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index b54eee21..e6a85e8a 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -708,6 +708,7 @@ namespace bgfx #else if (0 == (BGFX_SAMPLER_DEFAULT_FLAGS & _flags) ) { + _flags = (_flags&(~BGFX_TEXTURE_RESERVED_MASK) ) | (_numMips<