swr: [rasterizer] remove containers.hpp
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
1e3e22efb5
commit
0ceed1701d
|
@ -45,7 +45,6 @@ CXX_SOURCES := \
|
||||||
swr_query.cpp
|
swr_query.cpp
|
||||||
|
|
||||||
COMMON_CXX_SOURCES := \
|
COMMON_CXX_SOURCES := \
|
||||||
rasterizer/common/containers.hpp \
|
|
||||||
rasterizer/common/formats.cpp \
|
rasterizer/common/formats.cpp \
|
||||||
rasterizer/common/formats.h \
|
rasterizer/common/formats.h \
|
||||||
rasterizer/common/isa.hpp \
|
rasterizer/common/isa.hpp \
|
||||||
|
|
|
@ -1,208 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
* Copyright (C) 2014-2015 Intel Corporation. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
||||||
* IN THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef SWRLIB_CONTAINERS_HPP__
|
|
||||||
#define SWRLIB_CONTAINERS_HPP__
|
|
||||||
|
|
||||||
#include <functional>
|
|
||||||
#include "common/os.h"
|
|
||||||
|
|
||||||
namespace SWRL
|
|
||||||
{
|
|
||||||
|
|
||||||
template <typename T, int NUM_ELEMENTS>
|
|
||||||
struct UncheckedFixedVector
|
|
||||||
{
|
|
||||||
UncheckedFixedVector() : mSize(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
UncheckedFixedVector(std::size_t size, T const& exemplar)
|
|
||||||
{
|
|
||||||
this->mSize = 0;
|
|
||||||
for (std::size_t i = 0; i < size; ++i)
|
|
||||||
this->push_back(exemplar);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename Iter>
|
|
||||||
UncheckedFixedVector(Iter fst, Iter lst)
|
|
||||||
{
|
|
||||||
this->mSize = 0;
|
|
||||||
for ( ; fst != lst; ++fst)
|
|
||||||
this->push_back(*fst);
|
|
||||||
}
|
|
||||||
|
|
||||||
UncheckedFixedVector(UncheckedFixedVector const& UFV)
|
|
||||||
{
|
|
||||||
this->mSize = 0;
|
|
||||||
for (std::size_t i = 0, N = UFV.size(); i < N; ++i)
|
|
||||||
(*this)[i] = UFV[i];
|
|
||||||
this->mSize = UFV.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
UncheckedFixedVector& operator=(UncheckedFixedVector const& UFV)
|
|
||||||
{
|
|
||||||
for (std::size_t i = 0, N = UFV.size(); i < N; ++i)
|
|
||||||
(*this)[i] = UFV[i];
|
|
||||||
this->mSize = UFV.size();
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
T* begin() { return &this->mElements[0]; }
|
|
||||||
T* end() { return &this->mElements[0] + this->mSize; }
|
|
||||||
T const* begin() const { return &this->mElements[0]; }
|
|
||||||
T const* end() const { return &this->mElements[0] + this->mSize; }
|
|
||||||
|
|
||||||
friend bool operator==(UncheckedFixedVector const& L, UncheckedFixedVector const& R)
|
|
||||||
{
|
|
||||||
if (L.size() != R.size()) return false;
|
|
||||||
for (std::size_t i = 0, N = L.size(); i < N; ++i)
|
|
||||||
{
|
|
||||||
if (L[i] != R[i]) return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
friend bool operator!=(UncheckedFixedVector const& L, UncheckedFixedVector const& R)
|
|
||||||
{
|
|
||||||
if (L.size() != R.size()) return true;
|
|
||||||
for (std::size_t i = 0, N = L.size(); i < N; ++i)
|
|
||||||
{
|
|
||||||
if (L[i] != R[i]) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
T& operator[](std::size_t idx)
|
|
||||||
{
|
|
||||||
return this->mElements[idx];
|
|
||||||
}
|
|
||||||
T const& operator[](std::size_t idx) const
|
|
||||||
{
|
|
||||||
return this->mElements[idx];
|
|
||||||
}
|
|
||||||
void push_back(T const& t)
|
|
||||||
{
|
|
||||||
this->mElements[this->mSize] = t;
|
|
||||||
++this->mSize;
|
|
||||||
}
|
|
||||||
void pop_back()
|
|
||||||
{
|
|
||||||
SWR_ASSERT(this->mSize > 0);
|
|
||||||
--this->mSize;
|
|
||||||
}
|
|
||||||
T& back()
|
|
||||||
{
|
|
||||||
return this->mElements[this->mSize-1];
|
|
||||||
}
|
|
||||||
T const& back() const
|
|
||||||
{
|
|
||||||
return this->mElements[this->mSize-1];
|
|
||||||
}
|
|
||||||
bool empty() const
|
|
||||||
{
|
|
||||||
return this->mSize == 0;
|
|
||||||
}
|
|
||||||
std::size_t size() const
|
|
||||||
{
|
|
||||||
return this->mSize;
|
|
||||||
}
|
|
||||||
void resize(std::size_t sz)
|
|
||||||
{
|
|
||||||
this->mSize = sz;
|
|
||||||
}
|
|
||||||
void clear()
|
|
||||||
{
|
|
||||||
this->resize(0);
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
std::size_t mSize{ 0 };
|
|
||||||
T mElements[NUM_ELEMENTS];
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T, int NUM_ELEMENTS>
|
|
||||||
struct FixedStack : UncheckedFixedVector<T, NUM_ELEMENTS>
|
|
||||||
{
|
|
||||||
FixedStack() {}
|
|
||||||
|
|
||||||
void push(T const& t)
|
|
||||||
{
|
|
||||||
this->push_back(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
void pop()
|
|
||||||
{
|
|
||||||
this->pop_back();
|
|
||||||
}
|
|
||||||
|
|
||||||
T& top()
|
|
||||||
{
|
|
||||||
return this->back();
|
|
||||||
}
|
|
||||||
|
|
||||||
T const& top() const
|
|
||||||
{
|
|
||||||
return this->back();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
struct CRCHash
|
|
||||||
{
|
|
||||||
static_assert((sizeof(T) % sizeof(UINT)) == 0, "CRCHash expects templated type size is even multiple of 4B");
|
|
||||||
UINT operator()(const T& k) const
|
|
||||||
{
|
|
||||||
UINT *pData = (UINT*)&k;
|
|
||||||
UINT crc = 0;
|
|
||||||
for (UINT i = 0; i < sizeof(T) / sizeof(UINT); ++i)
|
|
||||||
{
|
|
||||||
crc = _mm_crc32_u32(crc, pData[i]);
|
|
||||||
}
|
|
||||||
return crc;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
}// end SWRL
|
|
||||||
|
|
||||||
namespace std
|
|
||||||
{
|
|
||||||
|
|
||||||
template <typename T, int N>
|
|
||||||
struct hash<SWRL::UncheckedFixedVector<T, N>>
|
|
||||||
{
|
|
||||||
size_t operator() (SWRL::UncheckedFixedVector<T, N> const& v) const
|
|
||||||
{
|
|
||||||
if (v.size() == 0) return 0;
|
|
||||||
std::hash<T> H;
|
|
||||||
size_t x = H(v[0]);
|
|
||||||
if (v.size() == 1) return x;
|
|
||||||
for (size_t i = 1; i < v.size(); ++i)
|
|
||||||
x ^= H(v[i]) + 0x9e3779b9 + (x<<6) + (x>>2);
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}// end std.
|
|
||||||
|
|
||||||
#endif//SWRLIB_CONTAINERS_HPP__
|
|
|
@ -54,7 +54,6 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "core/state.h"
|
#include "core/state.h"
|
||||||
#include "common/containers.hpp"
|
|
||||||
|
|
||||||
#include "state_llvm.h"
|
#include "state_llvm.h"
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
#include "blend_jit.h"
|
#include "blend_jit.h"
|
||||||
#include "builder.h"
|
#include "builder.h"
|
||||||
#include "state_llvm.h"
|
#include "state_llvm.h"
|
||||||
#include "common/containers.hpp"
|
|
||||||
#include "llvm/IR/DataLayout.h"
|
#include "llvm/IR/DataLayout.h"
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
#include "fetch_jit.h"
|
#include "fetch_jit.h"
|
||||||
#include "builder.h"
|
#include "builder.h"
|
||||||
#include "state_llvm.h"
|
#include "state_llvm.h"
|
||||||
#include "common/containers.hpp"
|
|
||||||
#include "llvm/IR/DataLayout.h"
|
#include "llvm/IR/DataLayout.h"
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
|
@ -236,8 +235,7 @@ void FetchJit::JitLoadVertices(const FETCH_COMPILE_STATE &fetchState, Value* fet
|
||||||
{
|
{
|
||||||
// Zack shuffles; a variant of the Charleston.
|
// Zack shuffles; a variant of the Charleston.
|
||||||
|
|
||||||
SWRL::UncheckedFixedVector<Value*, 16> vectors;
|
std::vector<Value*> vectors(16);
|
||||||
|
|
||||||
std::vector<Constant*> pMask(mVWidth);
|
std::vector<Constant*> pMask(mVWidth);
|
||||||
for(uint32_t i = 0; i < mVWidth; ++i)
|
for(uint32_t i = 0; i < mVWidth; ++i)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
#include "streamout_jit.h"
|
#include "streamout_jit.h"
|
||||||
#include "builder.h"
|
#include "builder.h"
|
||||||
#include "state_llvm.h"
|
#include "state_llvm.h"
|
||||||
#include "common/containers.hpp"
|
|
||||||
#include "llvm/IR/DataLayout.h"
|
#include "llvm/IR/DataLayout.h"
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
Loading…
Reference in New Issue