-
Notifications
You must be signed in to change notification settings - Fork 135
Add rdp interlace function #723
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
base: unstable
Are you sure you want to change the base?
Add rdp interlace function #723
Conversation
5f96732 to
1a48a8e
Compare
| ############################################################# | ||
| .func RDPQ_WriteSetScissor | ||
| RDPQ_WriteSetScissor: | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the reason you put the change here, instead of in RDPQCmd_SetScissorEx? RDPQ_WriteSetScissor is called any time a ucode needs to reset the scissoring (eg: rdpq_mode has to call it when it switches cycle type). So its main use is "reapply the current scissor settings".
I believe the change should go to RDPQCmd_SetScissorEx instead, which is what is called to process the rspq command used to set scissoring (and now interlacing). That's probably where the special semantic should go.
include/rdpq.h
Outdated
| * @param[in] draw_field True if the RDP should only draw odd lines, otherwise only even lines are drawn | ||
| * | ||
| */ | ||
| __attribute__((always_inline)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you change this to a standard inline?
Also please add the extern inline definitions at the bottom of rdpq.c.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Standard inline keyword may be ignored by the compiler under certain circumstances. If the function is intended to be guaranteed to always be inlined, the always_inline attribute must be used.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this function is intended to be always inlined, at least no more than any other similar short wrapper in rdpq, and all of them are marked inline. We trust the compiler on this, we don't have any input that we should override its decisions on this function or any other of rdpq.
0464fa2 to
97667e0
Compare
|
|
|
I don't think we can use dedithering with rdpq-level interlacing; dedithering is a filter that uses a kernel of a few pixels around each one; in case of an interlaced setup, that'd affect lines of different fields and thus different frames. We can try to warn about this in the future. |
No description provided.