Commit Graph

8334 Commits

Author SHA1 Message Date
degasus 48812f7bf7 update the rasterfont shader to GLSL3.3 - so OGL 3.3 is needed
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:39 -06:00
degasus 1bd21f44b2 custom shader for RasterFont, fix color support
OpenGL2.0 compatible

Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:36 -06:00
degasus 23a3336f9a increase hash size to u64
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:32 -06:00
degasus 75dd48247f initial release of new RasterFont without color support
this new design will once create a texture for all chars.
while rendering a string, a list of polygons (position on screen + texture)
for this string is generated on the fly and print at once by glDrawArrays.
atm, there is no support for colors, so everything will display white.

Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:28 -06:00
degasus c207422987 using of vao, warning: ARB_vertex_array_object is needed
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:25 -06:00
degasus 5c8800968a also check for vbo updates in EncodeToRamUsingShader
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:22 -06:00
degasus 1f1b32b663 only update vbo on changes in XFBSource::Draw
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:19 -06:00
degasus 34b1451fbe cache vbos in TextureCache::TCacheEntry::FromRenderTarget
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:15 -06:00
degasus d0c4332d99 don't update vbo, if there are no changes in Renderer::Swap
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:13 -06:00
degasus bbcb442983 in the end, also Renderer::Swap in vbo
two last draw-calls are missing:
VertexManager::Draw (see Graphic_Update branch)
RasterFont::printString (perhaps reimplement with an texture)

Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:10 -06:00
degasus b41c06a9ac EncodeToRamUsingShader in vbo
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:28:05 -06:00
degasus 8ea2ddbc50 XFBSource::Draw in vbo
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:27:59 -06:00
degasus d44228f1b7 TextureCache::TCacheEntry::FromRenderTarget as vbo
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:27:56 -06:00
degasus 6b3125728b use vbo for ShowEFBCopyRegions
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:27:53 -06:00
degasus 8b62be2025 fix ShowEFBCopyRegions
those fancy colors were the result of the usage of non-allocated heap

Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:27:49 -06:00
degasus 6864b40e26 reset glEnableClientState befor every draw
should be done with VAO, but atm, this is not possible :-(
this also partial revert the fix in fb92c338af (activating texture0 globally).

Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:27:46 -06:00
degasus 888b5fb061 remove usage of glMultiTexCoord2f
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
2012-12-13 15:27:38 -06:00
Ryan Houdek fb92c338af Bit of cleanup and fixing of one issue that was noticeable in SMS with Mario's shadow. 2012-10-27 22:50:06 -05:00
Ryan Houdek dfb3c44d1a Remove glMatrixMode and glLoadIdentity calls in Render.cpp which do absolutely nothing. 2012-10-27 18:27:16 -05:00
Ryan Houdek 8c1d104ca3 Change EFB copy location rectangles over to a Vertex array 2012-10-27 18:10:31 -05:00
Ryan Houdek c1fd640964 Rebase immediate-removal on master 2012-10-27 17:22:48 -05:00
rog 7006cd1217 i'm still not using a branch to fix the name of a variable 2012-10-24 15:32:02 -04:00
rog 4358f8384f readd memory card detection for movie code. I deleted this before, intending to move it elsewhere, but never did 2012-10-24 15:16:41 -04:00
Shawn Hoffman b2e2e49fe4 fix Snow Leopard compatibility
Checking for clang in Xcode bundle seems pointless, command line tools should be installed.
Setting the path explicity to avoid fink/macports/homebrew prevents use of locally installed packages like clang and wxwidgets.
Realistically using opencl means the minimum OSX version targetable is 10.6.
Correct TARGET_SYSROOT check, add required -mmacosx-version-min to linker flags.
also using wxwidgets gl component.
2012-10-22 16:45:37 -07:00
rodolfoosvaldobogado 72cb1734ee Some code cleaning for my last commit.
the amount and size of the buffer is now changed to "new hardware" frienly values and will fall back to the right values if hardware does not support them.
my next commit will be to a branch, with my ogl work.
2012-10-22 19:37:26 -03:00
NeoBrainX f7edfc0118 FifoPlayer: Copy selected object commands to clipboard when pressing ctrl+c 2012-10-22 12:32:57 +02:00
rog aece5310f3 more movie cleanup. Removes the remaining globals that didn't need to be global, rearranges some code to make more sense, and removes some redundant code. 2012-10-21 23:20:28 -04:00
rog 9070e7ff8c misc movie cleanup and fixes 2012-10-20 22:26:40 -04:00
rog 92d2f5dee2 keeping padding right is so hard 2012-10-20 15:58:29 -04:00
rog a6028b055b Save disc changes to .dtm, and load the full movie header every time it's loaded. 2012-10-20 14:40:16 -04:00
rodolfoosvaldobogado@gmail.com 5230146c73 Hey, long time no commits :).
So to compensate lets bring back some speed to the emulation.
change a little the way the vertex are send to the gpu,
This first implementation changes dx9 a lot and dx11 a little to increase the parallelism between the cpu and gpu.
ogl: is my next step in ogl is a little more trickier so i have to take a little more time.
the original concept is Marcos idea, with my little touch to make it even more faster.
what to look for: SPEEEEEDDD :).
please test it a lot and let me know if you see any problem.
in dx9 the code is prepared to fall back to the previous implementation if your card does not support the amount of buffers needed.
So if you did not experience any speed gains you know where is the problem :).
for the ones with more experience and compression of the code please test changing the amount and size of the buffers to tune this for your specific machine.
The current values are the sweet spot for my machine.
All must Thanks Marcos, I hate him for giving good ideas when I'm full of work.
2012-10-20 10:22:15 -03:00
rog 0384f61af3 re-rearrange movie code so it actually works all of the time 2012-10-19 19:43:03 -04:00
rog b1dee5fc23 small fix for undo load state while not recording 2012-10-18 04:40:56 -04:00
rog 79692a6c78 save settings necessary for syncing a movie to the .dtm, and load them upon playback 2012-10-18 04:18:40 -04:00
rog 783409c765 clear the save state loaded from a previous movie when starting emulation 2012-10-18 04:14:25 -04:00
rog 6b99b746c8 fix undo load state and load last overwritten state while recording 2012-10-18 04:11:14 -04:00
rog 7f624cda10 fix recording from save state 2012-10-18 04:03:12 -04:00
rog a366521d13 Correct the hotkey labels for undo load state, and load last overwritten state buttons 2012-10-18 03:30:44 -04:00
Pierre Bourdon 3990002250 Optimize JitCache::InvalidateICache by maintaining a "valid blocks" bitset
Most of the InvalidateICache calls are for a 32 bytes block: this is the
number of bytes invalidated by PowerPC dcb*/icb* instructions. Profiling
shows that a lot of CPU time is spent checking if there are any JIT blocks
covered by these 32 bytes (using std::map::lower_bound).

This patch adds a bitset containing the state of every 32 bytes block in
RAM (JIT cached/not JIT cached). Using that, a 32 bytes InvalidateICache
can check in the bitset if any JIT block might be invalidated. A bitset
check is a lot faster than an std::map::lower_bound operation, improving
performance of JitCache::InvalidateICache by more than 100%.

Some practical numbers:

* Xenoblade Chronicles (PAL)
  56.04FPS -> 59.28FPS (+5.78%)
* The Last Story (PAL)
  30.9FPS -> 32.83FPS (+6.25%)
* Super Mario Galaxy (PAL)
  59.76FPS -> 62.46FPS (+4.52%)

This function still takes more time than it should - more optimization in
this area might be possible (specializing for 32 bytes blocks to avoid
useless memcpy, for example).
2012-10-06 01:49:09 +02:00
Pierre Bourdon 8cefcaa94c Implement a simple benchmarking mode which logs FPS to a file
Very useful to compare performance between two builds, check the impact of
a configuration option, etc. FPS log is stored in User/Logs/fps.txt and is
reset each time you launch a game. Only enabled if you check the "Log FPS
to file" option in your graphics settings.

Could be improved a bit: currently logs only every 1s (so you can't really
see small variations), maybe output more infos to the fps.txt like
average/stddev (but Excel/Libreoffice/Google Docs can compute that easily
too).
2012-10-04 05:41:02 +02:00
NeoBrainX ac2ce8b16e Video_DX11: Remove some redundant code. 2012-09-27 18:15:45 +02:00
NeoBrainX bb8b5936c0 Revert "Partially revert revision d511b506120c."
This reverts commit 08e06b2293.
2012-09-27 18:15:44 +02:00
Sonicadvance1 8fed3b76c8 If setting videobackend back to null strings, Just set it to the front of the list. Fixes loading game specific INI files that don't load back the "default" video backend which is nothing. 2012-09-25 00:47:37 +00:00
Ryan Houdek 41266129ba Should fix issue 5630. 2012-09-24 17:16:34 -05:00
Ryan Houdek 3229bf824c Should actually load the backend when it changes via game INI 2012-09-23 17:54:23 -05:00
Ryan Houdek f8f8aea577 Allow the user to set graphics backend from Game INI. Zero GUI option available for setting. 2012-09-23 16:02:11 -05:00
Ryan Houdek b4ae200d0d This changes a mmap in MemArena so you don't need 786MB of memory free to actually allocate the 1GB memory space in Linux 32bit. I was also running in to this issue in my development. Kudos to plbl4ster to actually taking the time to research this. Closes issue 5625. 2012-09-23 10:08:13 -05:00
sulokuTDCmago 1e174ad31a F-Zero and Phantasy Star Online Memory Card Manager support. Thanks to Ralf from GS Central
Original information:
http://board.gscentral.org/retro-hacking/53093.htm

Signed-off-by: LPFaint99 <lpfaint99@gmail.com>
2012-09-21 21:41:04 -07:00
Pierre Bourdon 208d25c3f5 Revert merges of aram-dma-fixes and memcard-delay
These merges, while in theory improving emulation accuracy, cause issues
in other parts of the emulator based on invalid assumptions. memcard-delay
fixed some of these issues in the EXI memcard code, but several other
problems still exist and I don't have the time to debug that right now.
2012-09-07 01:11:38 +02:00
Scott Moreau 1ffb9ce47e Fix broken build when using SDL from Externals.
The problem here was the logic that detects SDL in the main CMakeLists.txt
is not the same as it is in DolphinWX/CmakeLists.txt to set libraries. When
using SDL from Externals it failed at link time because -lSDL was never set.
This fixes the problem by using the same condition logic to set the libs
as used when detecting SDL in the first place.
2012-09-02 16:53:15 -06:00