Бранимир Караџић 6 anni fa
parent
commit
7b92fc0afd
3 ha cambiato i file con 8 aggiunte e 22 eliminazioni
  1. 3 14
      include/bx/inline/uint32_t.inl
  2. 3 6
      include/bx/uint32_t.h
  3. 2 2
      tests/uint32_test.cpp

+ 3 - 14
include/bx/inline/uint32_t.inl

@@ -537,21 +537,10 @@ namespace bx
 		return result;
 		return result;
 	}
 	}
 
 
-	inline BX_CONSTEXPR_FUNC uint32_t strideAlign16(uint32_t _offset, uint32_t _stride)
-	{
-		const uint32_t align  = uint32_lcm(16, _stride);
-		const uint32_t mod    = uint32_mod(_offset, align);
-		const uint32_t mask   = uint32_cmpeq(mod, 0);
-		const uint32_t tmp0   = uint32_selb(mask, 0, align);
-		const uint32_t tmp1   = uint32_add(_offset, tmp0);
-		const uint32_t result = uint32_sub(tmp1, mod);
-
-		return result;
-	}
-
-	inline BX_CONSTEXPR_FUNC uint32_t strideAlign256(uint32_t _offset, uint32_t _stride)
+	template<uint32_t Min>
+	inline BX_CONSTEXPR_FUNC uint32_t strideAlign(uint32_t _offset, uint32_t _stride)
 	{
 	{
-		const uint32_t align  = uint32_lcm(256, _stride);
+		const uint32_t align  = uint32_lcm(Min, _stride);
 		const uint32_t mod    = uint32_mod(_offset, align);
 		const uint32_t mod    = uint32_mod(_offset, align);
 		const uint32_t mask   = uint32_cmpeq(mod, 0);
 		const uint32_t mask   = uint32_cmpeq(mod, 0);
 		const uint32_t tmp0   = uint32_selb(mask, 0, align);
 		const uint32_t tmp0   = uint32_selb(mask, 0, align);

+ 3 - 6
include/bx/uint32_t.h

@@ -217,13 +217,10 @@ namespace bx
 	///
 	///
 	BX_CONSTEXPR_FUNC uint32_t strideAlign(uint32_t _offset, uint32_t _stride);
 	BX_CONSTEXPR_FUNC uint32_t strideAlign(uint32_t _offset, uint32_t _stride);
 
 
-	/// Align to arbitrary stride and 16-bytes.
+	/// Align to arbitrary stride and Min bytes.
 	///
 	///
-	BX_CONSTEXPR_FUNC uint32_t strideAlign16(uint32_t _offset, uint32_t _stride);
-
-	/// Align to arbitrary stride and 256-bytes.
-	///
-	BX_CONSTEXPR_FUNC uint32_t strideAlign256(uint32_t _offset, uint32_t _stride);
+	template<uint32_t Min>
+	BX_CONSTEXPR_FUNC uint32_t strideAlign(uint32_t _offset, uint32_t _stride);
 
 
 	/// Convert float to half-float.
 	/// Convert float to half-float.
 	///
 	///

+ 2 - 2
tests/uint32_test.cpp

@@ -14,10 +14,10 @@ TEST_CASE("StrideAlign")
 		REQUIRE(12 == bx::strideAlign(ii+1, 12) );
 		REQUIRE(12 == bx::strideAlign(ii+1, 12) );
 	}
 	}
 
 
-	REQUIRE(0  == bx::strideAlign16(0, 12) );
+	REQUIRE(0  == bx::strideAlign<16>(0, 12) );
 	for (uint32_t ii = 0; ii < 12; ++ii)
 	for (uint32_t ii = 0; ii < 12; ++ii)
 	{
 	{
-		REQUIRE(48 == bx::strideAlign16(ii+1, 12) );
+		REQUIRE(48 == bx::strideAlign<16>(ii+1, 12) );
 	}
 	}
 
 
 	uint32_t offset = 11;
 	uint32_t offset = 11;