Commit Graph

228 Commits

Author SHA1 Message Date
Unknown W. Brackets 5a7d400f4b softgpu: Fix lines drawn upward or leftward. 2014-01-19 23:32:53 -08:00
Unknown W. Brackets 8271ec1a55 softgpu: Avoid a divide by 0 in line interpolation.
Fixes crash in Persona 2 loading screens.
2014-01-19 23:32:12 -08:00
Unknown W. Brackets 74c1b21b59 softgpu: Don't redraw every pixel of a line 16x.
Fixes the insane slowness when processing lines.  Now it's just regular
super slow.
2014-01-19 23:28:34 -08:00
Unknown W. Brackets 4bb6a77519 softgpu: Cleanup DrawPoint a bit.
Mostly in DrawSinglePixel() now.
2014-01-18 20:50:38 -08:00
Unknown W. Brackets 8f5fc4f079 softgpu: Interpolate/texture lines and points.
Also, expand out pixels in lines, it's just too slow otherwise (30%
overhead or so.)
2014-01-18 20:48:48 -08:00
Unknown W. Brackets e216032a8c softgpu: Separate out texturing logic.
This way it can be applied to other primitives.  But, this will probably
need larger changes to implement mipmapping.
2014-01-18 20:10:42 -08:00
raven02 4c25bb0365 softgpu: Let's try doubling before alpha blend.
Fixes #5122.
2014-01-18 19:58:28 -08:00
Unknown W. Brackets 08eecba6ba softgpu: Refactor pixel drawing to avoid code dup. 2014-01-18 19:57:12 -08:00
Unknown W. Brackets 01090f4ce7 softgpu: Respect the texture filering option.
Nearest is much faster, so you can force it to nearest for a good boost in
speed.
2014-01-18 16:39:46 -08:00
Unknown W. Brackets b95f9cf9d1 softgpu: Don't call rectangles quads.
GLES has quads and they work pretty differently.
2014-01-18 16:39:07 -08:00
Unknown W. Brackets b9f4cc4481 Double colors only when texturing, and after test.
Per tests.
2014-01-12 11:45:29 -08:00
Unknown W. Brackets 4ea4554ddf softgpu: detect a vram-relative display addr. 2014-01-11 09:51:32 -08:00
Unknown W. Brackets 55fe5a950e softgpu: rotate uvs in throughmode. 2014-01-11 09:51:09 -08:00
Tony Wasserka 4c720ee375 softgpu: Fix typo in TransformUnit. 2014-01-02 02:10:12 +01:00
Henrik Rydgård e5e17fbc6e More include cleanup. Hoping for very slightly faster compile times.. 2013-12-30 10:49:05 +01:00
Henrik Rydgård 87f203a5b8 More include untangling 2013-12-29 23:44:35 +01:00
Unknown W. Brackets 8f73ae07c0 softgpu: Fix preview region y1 in ge debugger. 2013-12-29 13:45:10 -08:00
Unknown W. Brackets 473fb866e6 softgpu: Implement vertex preview.
And move ConvertMatrix4x3To4x4() into a common place since there were
differing implementations, which was only confusing.
2013-12-29 13:45:10 -08:00
Unknown W. Brackets eb0ea71f24 softgpu: Use region for debugger buffer previews.
It's fine if it resizes or etc., but this should generally be the
interesting area of vram to show, without any confusing noise on the
side/etc.
2013-12-29 13:02:04 -08:00
Unknown W. Brackets 9f86959826 Fix typesafety (ScreenCoords not DrawingCoords.) 2013-12-29 12:59:26 -08:00
Unknown W. Brackets 25bc394284 Ignore the material update flag w/o vertex color.
Instead of using materialambient for all of them.

Fixes #3918, and seems to match tests with 3dstudio.
2013-12-29 12:57:30 -08:00
Henrik Rydgard 3ed7c6d48f SoftGPU: Display at correct aspect ratio independent of window size. 2013-12-17 09:02:54 +01:00
Unknown W. Brackets b1d78020c4 softgpu: Keep track of frame dirty for frameskip.
But only when frameskip is enabled.  Let's always draw in case of pixel
poking when it's off.
2013-12-15 14:32:04 -08:00
Unknown W. Brackets 9aa1b15569 softgpu: Fix black objects with bilinear filtering.
Dividing by 256 gives us a range of 0-253, and incorrectly gets zero for
some components (guessing alpha, primarily?) in some games.

Dividing by 255 has a speed hit, so a slight bias to the top left seems
like a decent performance compromise (and it's a very slight bias.)
2013-12-15 11:59:25 -08:00
Unknown W. Brackets 96d6f52a13 softgpu: Retain accuracy in depth for tests.
Fixes intro/menu issues in Phantasy Star Portable 1/2, and text in the
first, both of which now look correct.
2013-12-15 11:59:25 -08:00
Unknown W. Brackets 6ca5662b03 softgpu: Properly swizzle 16 bit textures.
Fixes for example the graphics in Fieldrunners.
2013-12-15 11:59:24 -08:00
Unknown W. Brackets da1224bb57 softgpu: Use the display, not current, framebuffer.
Fixes blinking in save dialogs and probably other bugs.
2013-12-15 11:59:23 -08:00
Unknown W. Brackets 2f0c8c2877 softgpu: Attempt to implement GE_PROJMAP_UV.
Looks okay, not sure if it's fully correct.
2013-12-15 11:59:22 -08:00
Unknown W. Brackets 13bf4d83fa Add memchecks for common HLE copy operations.
Better to catch some than miss everything.
2013-12-14 14:56:05 -08:00
Henrik Rydgard d4eee74b54 SoftGPU: Prepare for mipmapping. Getting the uv deltas seems tricky though... 2013-12-10 15:33:59 +01:00
raven02 2e7609b084 Cleanup ClearmodeDepthMask 2013-12-10 20:48:20 +08:00
Henrik Rydgård 20873f2985 Remove unnecessary ifdef 2013-12-09 16:53:46 +01:00
raven02 75492719e8 std::bind build fix for VS2012 2013-12-09 21:06:38 +08:00
Henrik Rydgård 68b08ffb9f SoftGPU: Quick and dirty lines and points implementation
No line/point texturing support yet.
2013-12-09 12:43:49 +01:00
Unknown W. Brackets c6a441965e Move shared clut check to gstate. 2013-12-08 23:11:56 -08:00
Unknown W. Brackets cdccf06b62 softgpu: Avoid some ScreenToDrawing() overhead. 2013-12-08 22:38:09 -08:00
Unknown W. Brackets 30394df775 softgpu: Make texture lookups do less math. 2013-12-08 22:37:45 -08:00
Henrik Rydgard bd1d4e2d92 As if softgpu wasn't slow enough already, implement bilinear filtering. 2013-12-09 01:44:23 +01:00
Unknown W. Brackets 637a9de75d Optimize out some clear mode checks.
Since it's really common and the rasterizer is slow for large draws.
2013-12-08 14:24:17 -08:00
Unknown W. Brackets 598d509fb9 Use multiple threads if available for softgpu.
VIVA OVERHEAD.  But it's actually generally faster this way, even with
only 2 cores running (but not a huge improvement then.)

On an i7, this improves things ~2.5x with 8 cores.
2013-12-08 13:41:20 -08:00
Unknown W. Brackets d227b13f36 softgpu: Advance vertex/index address on prim.
Fixes some broken graphics in a lot of places.
2013-11-20 21:59:45 -08:00
Henrik Rydgård 428b27903b Merge pull request #4556 from unknownbrackets/ctrl-timing
Adjust ctrl timing (sample and wake after vblank)
2013-11-18 05:06:58 -08:00
Unknown W. Brackets 7a9fe955f8 softgpu: Only check clear mode once for depthtest.
Small, small optimization.  It's only called outside clear mode.
2013-11-17 19:32:21 -08:00
Unknown W. Brackets dfadb67ea1 Avoid some operator overloads.
Causing ambiguity.
2013-11-17 14:42:58 -08:00
Unknown W. Brackets 1311d71455 softgpu: Fix reversed stencil test funcs.
LESS applies to the ref compared to the stencil, not the stencil compared
to the ref.

With this, stencil testing is finally being done properly in Star Ocean.
2013-11-10 03:21:01 -08:00
Unknown W. Brackets 2db98b8669 softgpu: Don't apply logic op to stencil value.
Also, they were not at all applying correctly.
2013-11-10 03:21:00 -08:00
Unknown W. Brackets 438928de40 softgpu: Apply stencil op even when depth disabled. 2013-11-10 03:21:00 -08:00
Unknown W. Brackets 5327ce80d5 softgpu: throughmode doesn't disable any tests. 2013-11-10 03:20:59 -08:00
Unknown W. Brackets 5751e0a0a4 softgpu: Simplify color clamping. 2013-11-10 03:20:58 -08:00
Unknown W. Brackets 21deaef35a Invert gstate.getClearModeColorMask().
It makes more sense matching gstate.getColorMask().
2013-11-10 03:20:58 -08:00