Ticket #84 (assigned task)

Opened 2 years ago

Last modified 2 years ago

Runtime CPU detection, and code optimisation.

Reported by: madtree Owned by: madtree
Priority: major Milestone: Tag "kitty" version.
Component: both Version: Kitty
Keywords: Cc:

Description (last modified by madtree) (diff)

Q3 engine does'nt seems to use modern cpu's features like SSE2 or MMX... Using these functionalities would improve functions like memcpy performance's a lot (many times according yo what i've read). In order to keeping compatibilty with old cpu without having to compile many binaries, we *must* make a runtime cpu-detection feature.

See mplayer source code ( libvo/aclib.c cpudetect.c )for more informations.

Change History

Changed 2 years ago by madtree

  • owner changed from nobody to madtree
  • status changed from new to assigned
  • description modified (diff)

Changed 2 years ago by amanieu

First of all this will only work when you compile a dll/so, not when you compile a qvm. Secondly, you will need to q_shared.h and remove some of the included header files so that you can define your own version of the functions. If you want I can give you some of the assembly code I used for my mem and string function in my operating system.

Changed 2 years ago by mdoison

  • version set to Kitty

Changed 2 years ago by amanieu

Its no use trying to put any of that in the qvm because the performance benfit will be canceled by the lack of code optimizations.

Note: See TracTickets for help on using tickets.