Add rdp interlace function#723
Conversation
5f96732 to
1a48a8e
Compare
| ############################################################# | ||
| .func RDPQ_WriteSetScissor | ||
| RDPQ_WriteSetScissor: | ||
|
|
There was a problem hiding this comment.
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.
| * @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.
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.
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.
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.