Commit graph

85 commits

Author SHA1 Message Date
Ari Koivula b5944d5d3c Move test strategy initialization to its own module. 2014-07-29 08:31:28 +03:00
Ari Koivula 538c9ec85b Add a benchmark for strategies.
- usage: kvazaar_tests -v -s speed

Conflicts:
	build/kvazaar_tests/kvazaar_tests.vcxproj
	build/kvazaar_tests/kvazaar_tests.vcxproj.filters
	tests/tests_main.c
2014-07-28 12:34:12 +03:00
Ari Koivula 2ac030ee81 Add errors for VS.
- 4716 function must return a value.

- 4700 uninitialized local variable used.
2014-07-28 12:31:49 +03:00
Ari Lemmetti 4f88ebce5a Added comments and made visual studio not to compile x86inc.asm 2014-07-22 15:07:57 +03:00
Ari Lemmetti fea44c8234 Renaming AVX/asm files
-Splitted SAD and SATD functions in separate files
2014-07-21 18:02:01 +03:00
Ari Lemmetti a64df6f0d0 Merge branch 'asm'
Conflicts:
	build/kvazaar_lib/kvazaar_lib.vcxproj.filters
	src/Makefile
	src/strategies/strategies-picture.c
2014-07-21 16:41:09 +03:00
Ari Lemmetti 1be2c3aae5 Preparing push to master and misc
-Removed unnecessary <math.h> headers
-Updated AVX/asm optimizations to match the new file hierarchy
-Makefile only compiles .asm files if KVAZAAR_DISABLE_YASM is not set to 1 and TARGET_CPU_ARCH is x86
2014-07-21 12:39:56 +03:00
Ari Koivula a8f7103797 Add AVX2 implementations for sad_8bit_ 8x8, 16x16 and 32x32. 2014-07-18 18:27:30 +03:00
Ari Koivula 3daa5dd1f1 Add sse2 implementaton for sad_8bit_4x4. 2014-07-18 18:20:34 +03:00
Ari Lemmetti 1e94262f85 Made AVX asm compatible with the changed system
- x86inc.asm is now located in extras
- Removed unused cpu.asm/h
2014-07-14 18:51:17 +03:00
Ari Lemmetti 683eda1183 Merge branch 'master' into asm
Conflicts:
	build/kvazaar_lib/kvazaar_lib.vcxproj
	build/kvazaar_lib/kvazaar_lib.vcxproj.filters
	src/Makefile
	src/strategies/strategies-picture.c
2014-07-14 16:42:33 +03:00
Ari Koivula 5d0df56c94 Move optimizations to their own compilation units according to target.
- This is necessary in order to compile AVX intrinsics correctly in
  Visual Studio. Having everything in their own units should also make
  compiling normal C code with optimizations on easier.

- For now the makefile still relies on GCC __target__ attribute for compiling
  intrinsics.
2014-07-11 17:26:19 +03:00
Ari Koivula fbd03b706e Reconfigure VS project.
- Moved compilation flag stuff from project file to the abstraction layer.

- Disabled randomized base address as unnecessary.

- Disable stack buffer security check from release.
2014-07-11 17:26:19 +03:00
Ari Lemmetti 048127c7e3 AVX assembly optimizations improved 2014-07-02 16:57:06 +03:00
Ari Lemmetti bdef5384ef Added AVX strategy 2014-06-17 16:52:24 +03:00
Ari Koivula ab3845c9c7 Add some intra sad tests. 2014-06-16 18:03:56 +03:00
Ari Koivula bb31408d8b Update VS project.
- Disable warnings about converting function pointers to void *.

- Treat incorrect indirection levels warnings as errors.
2014-06-16 12:29:10 +03:00
Ari Koivula 1de102be61 Move strategies to their own compilation units.
- Enforces a little bit more hierarchy. Compilation units are in strategies
  and whatever inline includes they have are in a folder with the same name
  as the strategy.
2014-06-13 15:30:23 +03:00
Ari Koivula 9a3569b5c6 Update unit tests to work with current build.
- Updating picture_list wasn't really worth it so I removed it.
2014-06-13 15:30:23 +03:00
Ari Koivula 3b7d532675 Add missing headers to VS project. 2014-06-12 15:50:51 +03:00
Ari Koivula 50cc601d36 Update VS project to use more standard paths for pthreads-w32. 2014-06-12 10:54:17 +03:00
Ari Koivula eec1bd18b7 Update VS project.
- Update all projects to use VS2013 toolset that has better c99 support that
  some of Laurent's changes require.

- Fix the unit test project. Tests still need to be updated.
2014-06-11 17:03:22 +03:00
Ari Koivula 575652fe50 Add missing files to VS project. 2014-06-04 17:45:51 +03:00
Ari Koivula d6c0c9b5e1 Treat incorrect declarations as errors in VS. 2014-05-28 15:21:52 +03:00
Ari Koivula 6309cfadd7 Instruct VS to not include all win32 headers. 2014-05-19 15:58:16 +03:00
Ari Koivula f3962dc744 Make undefined names errors in VS project.
- We never want to use undeclared functions. Should have done this a long time
  ago.
2014-05-19 15:58:16 +03:00
Ari Koivula 60a0ba4280 Update VS project files to link win32-pthread.
- I haven't found a good way of including external dependencies to VS projects
  yet. Win32-pthreads is assumed to be found at the same level as kvazaar dir
  and has the files x86/pthreadVC2.lib and x64/pthreadVC2.lib.

- Win32-pthreads also requires the pthreadVC2.dll to be in PATH when running
  the program. Not sure what to do about that yet. We might need an installer
  for windows to handle that.

- Disable openmp as it's no longer used.

- Stop linking Ws2_32.lib as that hasn't been used for ages.
2014-05-14 17:54:34 +03:00
Ari Koivula 535b42bc9b Fix compilation for VS2010. 2014-05-07 15:26:44 +03:00
Marko Viitanen bf2c2a1330 Small changes to fix compiling on VS
- Added threads.h to VS project
- Included Windows.h in threads.h
2014-05-05 11:18:43 +03:00
Ari Koivula 42295d3cb9 Pass preprocessor defines for supported intrinsics in VS2010 explicitly.
- _M_IX86_FP defines whether VS should generate code using SSE or SSE2
  instructions. It isn't correct to use it to check whether optional runtime
  optimizations should be compiled in. It's also not defined at all in 64-bit
  mode.

- So let's just keep it simple and give a list of everything that is supported
  as release optimizations. It's not clear from the documentation if all of
  these are really supported. It just list a bunch of intrinsics from these
  that are.
2014-04-30 17:41:15 +03:00
Ari Koivula bd7e021742 Modify strategyselector to work with VS2010.
- VS doesn't have snprintf.

- VS doesn't support GCC attributes.

- Add defines for __SSE__ and __SSE2__ on VS.
2014-04-29 15:29:06 +03:00
Yusuke Nakamura 03da39e229 config: Use built-in getopt on non-MSVC environments. 2014-04-27 00:40:52 +09:00
Ari Koivula 807fae743e Add new modules to VS project. 2014-04-16 12:12:33 +03:00
Ari Koivula e4b942ad67 Enable /W4 for VS.
- Disabled errors are:
 - Implicit conversion from bigger to a smaller type. I don't want to disable
   it but there are still about 60 of these and adding explicit C casts
   everywhere is just going to cause more problems.
 - Nonstandard extension: Non-constant aggregate initializer.
 - Translation unit is empty.
2014-04-04 13:02:09 +03:00
Ari Koivula 9b9e069560 Put 64 and 32 bit binaries in separate directories.
Also removes debug dll from 32bit release.
2014-02-11 16:51:57 +02:00
Ari Koivula c3f7e903a6 Rename VS project files. 2014-02-11 15:33:41 +02:00
Ari Koivula 6dbae48268 Remove debug module.
- It hasn't been very useful lately and I don't want to maintain it.
2014-02-10 16:50:53 +02:00
Ari Koivula 4a9cbb3de9 Change VS release to use normal DLLs instead of debug.
- Thanks @selur for mentioning it in issue #11.
2014-02-07 15:11:37 +02:00
Ari Koivula db0bcfff98 Update unit tests.
- Vectors that point far outside the frame don't work, although the special
  case of them pointing right beside the frame works. So test for vectors
  pointing farther away.
- Update include directory for greatest.
2014-02-07 14:24:18 +02:00
Marko Viitanen cb611797b3 Included getopt.c/.h to VS2010 project 2014-02-04 17:22:36 +02:00
Ari Koivula 6b4d113feb Replace seatest with greatest as a framework for unit tests.
- Add our own Github fork of greatest as a submodule, in case we want to
  improve it and push changes upstream easily in the future.
- Update existing unit tests to use greatest.
- Update Visual Studio project to remove traces of seatest and include greatest.
2014-01-31 15:57:49 +02:00
Ari Koivula 7d5c3f7d0f Rename sad_tests.cpp to sad_tests.c. 2014-01-31 14:36:50 +02:00
Marko Viitanen 76f24408b6 Included x264asm abstraction layer -library and fixed Makefile
Name mangling is causing problems on different platforms (issues #2 and #3) and some of it was solved modifying the Makefile. Separate 32bit and 64bit assembly functions were also causing problems and since we were going to move to x264asm abstraction layer anyway, we decided to do it now before spending time on the old implementation.
2014-01-30 17:59:50 +02:00
Marko Viitanen 9f70bf74f0 Imported and converted RDOQ from HM 12.0, NOT WORKING YET 2014-01-27 14:34:58 +02:00
Ari Koivula 343cc7f272 Move yasm visual studio files to build. 2014-01-24 15:51:41 +02:00
Ari Koivula 5f3ee9e096 Sao vcxproj files. 2013-11-04 20:35:48 +02:00
Ari Koivula 2b4ca9b3e5 Remove tests as post build event from main project.
It wasn't supposed to be there yet.
2013-10-10 14:31:59 +03:00
Ari Koivula 68aa70a49a Add tests for calculating sad outside frame. 2013-10-09 15:31:27 +03:00
Ari Koivula e5cced6b4a Move _CRT_SECURE_NO_WARNINGS to property sheet. 2013-09-24 21:31:48 +03:00
Ari Koivula ca34dd4b3f Fix .vcxproj files by hand.
- Remove stupid stuff.
- Reorder imports so that default settings are gathered correctly.
  Microsoft.Cpp.props needs to be imported after ConfigurationType and
  UseDebugLibraries have been set because it does different stuff depending
  on their values.
2013-09-24 21:31:05 +03:00