Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rsx: Reduce capture size + image_in fixes #5381

Merged
merged 9 commits into from
Dec 4, 2018
Merged

Conversation

elad335
Copy link
Contributor

@elad335 elad335 commented Dec 1, 2018

  • Reduce capture size.
  • ignore image_in transfers with empty clip region. its not executed at all according to hw tests.
  • Dont "fix" in_pitch and out_pitch when 0 (image_in and buffer notify)
    e.g when src pitch is 0, the same line is copied to the destination.
    testcase used
    original texture.
    result using image_in with zero src pitch.
    result using buffer_notify with zero dst pitch;
    result using buffer_notify with zero src pitch.
  • Minor size of rect fixes.
  • Add rsx lv2 defaults for sempahore context, cus vsh.
  • Implement backwards source image reading in image_in. Fixes RSX: NV3089_IMAGE_IN: Invalid dimensions or scaling factor. #4747.

@Deminating
Copy link

Deminating commented Dec 2, 2018

Will edit with findings as they go along

Surf's Up loadable -> ingame
NCAA March Madness 08 intro -> ingame, needs a mix of WCB/SRM/blit to show graphics
Mamorukun Curse ingame -> most likely playable, story mode fixed with mix of WCB/SRM/bit needed

Everything else I've reported has either been fixed or suffers from other errors. As far as I can tell, image_in errors seem fixed.

@elad335 elad335 force-pushed the experimental branch 2 times, most recently from e46ebb6 to de5c311 Compare December 2, 2018 06:01
rpcs3/Emu/RSX/rsx_utils.h Outdated Show resolved Hide resolved
@@ -900,7 +900,7 @@ namespace rsx
u8* pixels_dst = vm::_ptr<u8>(get_address(dst_offset + out_offset, dst_dma));

const auto read_address = get_address(src_offset, src_dma);
rsx->read_barrier(read_address, in_pitch * in_h);
rsx->read_barrier(read_address, in_pitch * (in_h - 1) + (in_w * in_bpp));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch

rpcs3/Emu/RSX/rsx_methods.cpp Outdated Show resolved Hide resolved
@digitaldude555
Copy link

screenshot 1285
game no longer black screen.

@elad335 elad335 force-pushed the experimental branch 2 times, most recently from 914c4c8 to c2f9e27 Compare December 2, 2018 13:59
@elad335 elad335 force-pushed the experimental branch 2 times, most recently from 93834ad to 98f97f0 Compare December 3, 2018 12:30
@micaelis72
Copy link

The huge amount of "RSX: NV3089_IMAGE_IN: Invalid dimensions or scaling factor." that exists on Macross 30 vanished. Other problems remains on the game, but this message has gone.

@elad335 elad335 force-pushed the experimental branch 3 times, most recently from 8ec8fe8 to 23cac69 Compare December 4, 2018 05:10
* Dont bother capturing 'destination' blocks with no data. instead premap all main memory to ensure allocated
* Capture zcull and tile state as their compressed gcm forms
* Fix index array capturing, ignore empty sets
* hle gcm: Fix byteswaping in cellGcmSetZcull
If clip region is empty, dont execute
The hw doesnt fix pitch, when specifying src pitch 0 it copies the same pixels line to dst. keep in mind out_pitch = 0 is not allowed in image_in.
Same goes for buffer_notify, though it allows out_pitch to be 0.
@kd-11 kd-11 merged commit 45942c4 into RPCS3:master Dec 4, 2018
@elad335 elad335 deleted the experimental branch December 4, 2018 10:12
@elad335 elad335 mentioned this pull request Mar 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

RSX: NV3089_IMAGE_IN: Invalid dimensions or scaling factor.
5 participants