diff options
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h')
-rw-r--r-- | src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h deleted file mode 100644 index 7501e83fc4..0000000000 --- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h +++ /dev/null @@ -1,123 +0,0 @@ -// -// Copyright (c) 2012-2014 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// - -// RenderStateCache.h: Defines rx::RenderStateCache, a cache of Direct3D render -// state objects. - -#ifndef LIBANGLE_RENDERER_D3D_D3D11_RENDERSTATECACHE_H_ -#define LIBANGLE_RENDERER_D3D_D3D11_RENDERSTATECACHE_H_ - -#include "common/angleutils.h" -#include "libANGLE/Error.h" -#include "libANGLE/SizedMRUCache.h" -#include "libANGLE/angletypes.h" -#include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h" - -#include <unordered_map> - -namespace gl -{ -class Framebuffer; -} - -namespace std -{ -template <> -struct hash<rx::d3d11::BlendStateKey> -{ - size_t operator()(const rx::d3d11::BlendStateKey &key) const - { - return angle::ComputeGenericHash(key); - } -}; - -template <> -struct hash<rx::d3d11::RasterizerStateKey> -{ - size_t operator()(const rx::d3d11::RasterizerStateKey &key) const - { - return angle::ComputeGenericHash(key); - } -}; - -template <> -struct hash<gl::DepthStencilState> -{ - size_t operator()(const gl::DepthStencilState &key) const - { - return angle::ComputeGenericHash(key); - } -}; - -template <> -struct hash<gl::SamplerState> -{ - size_t operator()(const gl::SamplerState &key) const { return angle::ComputeGenericHash(key); } -}; -} // namespace std - -namespace rx -{ -class Renderer11; - -class RenderStateCache : angle::NonCopyable -{ - public: - RenderStateCache(); - virtual ~RenderStateCache(); - - void clear(); - - static d3d11::BlendStateKey GetBlendStateKey(const gl::Context *context, - const gl::Framebuffer *framebuffer, - const gl::BlendState &blendState); - gl::Error getBlendState(Renderer11 *renderer, - const d3d11::BlendStateKey &key, - const d3d11::BlendState **outBlendState); - gl::Error getRasterizerState(Renderer11 *renderer, - const gl::RasterizerState &rasterState, - bool scissorEnabled, - ID3D11RasterizerState **outRasterizerState); - gl::Error getDepthStencilState(Renderer11 *renderer, - const gl::DepthStencilState &dsState, - const d3d11::DepthStencilState **outDSState); - gl::Error getSamplerState(Renderer11 *renderer, - const gl::SamplerState &samplerState, - ID3D11SamplerState **outSamplerState); - - private: - // MSDN's documentation of ID3D11Device::CreateBlendState, ID3D11Device::CreateRasterizerState, - // ID3D11Device::CreateDepthStencilState and ID3D11Device::CreateSamplerState claims the maximum - // number of unique states of each type an application can create is 4096 - // TODO(ShahmeerEsmail): Revisit the cache sizes to make sure they are appropriate for most - // scenarios. - static constexpr unsigned int kMaxStates = 4096; - - // The cache tries to clean up this many states at once. - static constexpr unsigned int kGCLimit = 128; - - // Blend state cache - using BlendStateMap = angle::base::HashingMRUCache<d3d11::BlendStateKey, d3d11::BlendState>; - BlendStateMap mBlendStateCache; - - // Rasterizer state cache - using RasterizerStateMap = - angle::base::HashingMRUCache<d3d11::RasterizerStateKey, d3d11::RasterizerState>; - RasterizerStateMap mRasterizerStateCache; - - // Depth stencil state cache - using DepthStencilStateMap = - angle::base::HashingMRUCache<gl::DepthStencilState, d3d11::DepthStencilState>; - DepthStencilStateMap mDepthStencilStateCache; - - // Sample state cache - using SamplerStateMap = angle::base::HashingMRUCache<gl::SamplerState, d3d11::SamplerState>; - SamplerStateMap mSamplerStateCache; -}; - -} // namespace rx - -#endif // LIBANGLE_RENDERER_D3D_D3D11_RENDERSTATECACHE_H_ |