<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic PXP Rotation setup in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/PXP-Rotation-setup/m-p/1589019#M23481</link>
    <description>&lt;P&gt;I am trying to set up the PXP to perform a 90-degree rotation of an input image with dimensions of 480 x 320 pixels in RGB565 format.&amp;nbsp; I do not get the desired results with the following processed surface and output setup:&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;OUT_PITCH: 960 OUT_LRC: 479,319&amp;nbsp; &amp;nbsp; // OUT_ULC assumed to be 0,0&lt;BR /&gt;OUT_PS_ULC: 0, 0 OUT_PS_LRC: 479,319&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;If I start with an image with 320 x 320 dimensions,&amp;nbsp; I do get a successful&amp;nbsp;rotation.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;A PXP rotation&amp;nbsp; example&amp;nbsp; from the SDKs has the following cryptic code:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_IMG_WIDTH &amp;nbsp;WIDTH &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;480&lt;/SPAN&gt;&lt;SPAN&gt; // my own image definitions&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_IMG_HEIGHT HEIGHT &lt;/SPAN&gt;&lt;SPAN&gt;320&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;/* PS input buffer is square. */&amp;nbsp; Why did they use a square--was it not designed to rotate the whole input image??&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#if&lt;/SPAN&gt;&lt;SPAN&gt; APP_IMG_WIDTH &lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; APP_IMG_HEIGHT&lt;/SPAN&gt;&lt;SPAN&gt; // from the SDK example&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define APP_PS_SIZE APP_IMG_HEIGHT &amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_SIZE APP_IMG_WIDTH&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_ULC_X ((APP_IMG_WIDTH &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt; (APP_PS_SIZE &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_ULC_Y ((APP_IMG_HEIGHT &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt; (APP_PS_SIZE &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_LRC_X ((APP_IMG_WIDTH &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt;&lt;SPAN&gt; (APP_PS_SIZE &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;1U&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_LRC_Y ((APP_IMG_HEIGHT &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt;&lt;SPAN&gt; (APP_PS_SIZE &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;1U&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If I use these defines,&amp;nbsp; I get the following register setup before the rotation:&lt;/DIV&gt;&lt;DIV&gt;OUT_PITCH: 960 OUT_LRC: 479,319&lt;BR /&gt;OUT_PS_ULC: 80, 0 OUT_PS_LRC: 399,319&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Now the OUT_PS corners are a square in the middle of the desired image.&amp;nbsp; This does not seem to be a good recipe for rotating a complete rectangular image!&amp;nbsp; &amp;nbsp;There are fewer pixels in the OUT_PS boundaries than there are in the output image.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I've got a pretty good understanding of the PXP capabilities for scaling, offsetting and blending images and was able to write an app to do a slide show with slide-in, zoom in, fade out, and other transitions as well as a Ken-Burns display of an image (slow zoom and offsets).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Rotation remains a mystery.&amp;nbsp; &amp;nbsp;The text in the PXP section Rev3 of the&amp;nbsp; IMXRT1023 reference manual is helpful,&amp;nbsp; but does not have any particular detail on the setup of the PXP for rotation.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 27 Jan 2023 17:28:01 GMT</pubDate>
    <dc:creator>mborgerson</dc:creator>
    <dc:date>2023-01-27T17:28:01Z</dc:date>
    <item>
      <title>PXP Rotation setup</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/PXP-Rotation-setup/m-p/1589019#M23481</link>
      <description>&lt;P&gt;I am trying to set up the PXP to perform a 90-degree rotation of an input image with dimensions of 480 x 320 pixels in RGB565 format.&amp;nbsp; I do not get the desired results with the following processed surface and output setup:&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;OUT_PITCH: 960 OUT_LRC: 479,319&amp;nbsp; &amp;nbsp; // OUT_ULC assumed to be 0,0&lt;BR /&gt;OUT_PS_ULC: 0, 0 OUT_PS_LRC: 479,319&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;If I start with an image with 320 x 320 dimensions,&amp;nbsp; I do get a successful&amp;nbsp;rotation.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;A PXP rotation&amp;nbsp; example&amp;nbsp; from the SDKs has the following cryptic code:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_IMG_WIDTH &amp;nbsp;WIDTH &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;480&lt;/SPAN&gt;&lt;SPAN&gt; // my own image definitions&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_IMG_HEIGHT HEIGHT &lt;/SPAN&gt;&lt;SPAN&gt;320&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;/* PS input buffer is square. */&amp;nbsp; Why did they use a square--was it not designed to rotate the whole input image??&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#if&lt;/SPAN&gt;&lt;SPAN&gt; APP_IMG_WIDTH &lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; APP_IMG_HEIGHT&lt;/SPAN&gt;&lt;SPAN&gt; // from the SDK example&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define APP_PS_SIZE APP_IMG_HEIGHT &amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_SIZE APP_IMG_WIDTH&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_ULC_X ((APP_IMG_WIDTH &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt; (APP_PS_SIZE &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_ULC_Y ((APP_IMG_HEIGHT &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt; (APP_PS_SIZE &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_LRC_X ((APP_IMG_WIDTH &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt;&lt;SPAN&gt; (APP_PS_SIZE &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;1U&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; APP_PS_LRC_Y ((APP_IMG_HEIGHT &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt;&lt;SPAN&gt; (APP_PS_SIZE &lt;/SPAN&gt;&lt;SPAN&gt;/&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;1U&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If I use these defines,&amp;nbsp; I get the following register setup before the rotation:&lt;/DIV&gt;&lt;DIV&gt;OUT_PITCH: 960 OUT_LRC: 479,319&lt;BR /&gt;OUT_PS_ULC: 80, 0 OUT_PS_LRC: 399,319&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Now the OUT_PS corners are a square in the middle of the desired image.&amp;nbsp; This does not seem to be a good recipe for rotating a complete rectangular image!&amp;nbsp; &amp;nbsp;There are fewer pixels in the OUT_PS boundaries than there are in the output image.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I've got a pretty good understanding of the PXP capabilities for scaling, offsetting and blending images and was able to write an app to do a slide show with slide-in, zoom in, fade out, and other transitions as well as a Ken-Burns display of an image (slow zoom and offsets).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Rotation remains a mystery.&amp;nbsp; &amp;nbsp;The text in the PXP section Rev3 of the&amp;nbsp; IMXRT1023 reference manual is helpful,&amp;nbsp; but does not have any particular detail on the setup of the PXP for rotation.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Jan 2023 17:28:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/PXP-Rotation-setup/m-p/1589019#M23481</guid>
      <dc:creator>mborgerson</dc:creator>
      <dc:date>2023-01-27T17:28:01Z</dc:date>
    </item>
    <item>
      <title>Re: PXP Rotation setup</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/PXP-Rotation-setup/m-p/1591106#M23536</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/211777"&gt;@mborgerson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;I modify the pxp_rotate example to rotate a rectangle. Please take a look.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Jing&lt;/P&gt;</description>
      <pubDate>Wed, 01 Feb 2023 08:11:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/PXP-Rotation-setup/m-p/1591106#M23536</guid>
      <dc:creator>jingpan</dc:creator>
      <dc:date>2023-02-01T08:11:43Z</dc:date>
    </item>
    <item>
      <title>Re: PXP Rotation setup</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/PXP-Rotation-setup/m-p/1593477#M23593</link>
      <description>&lt;P&gt;Unfortunately, while the changes may rotate the full image rectangle, the code still has all the defines with no explanation:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_IMG_WIDTH  DEMO_BUFFER_WIDTH     &lt;SPAN class=""&gt;//480&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_IMG_HEIGHT DEMO_BUFFER_HEIGHT    &lt;SPAN class=""&gt;//272&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class=""&gt;/* PS input buffer is not square. */&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;if&lt;/SPAN&gt; APP_IMG_WIDTH &amp;gt; APP_IMG_HEIGHT&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_WIDTH APP_IMG_HEIGHT      &lt;SPAN class=""&gt;//272&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_HEIGHT (APP_IMG_HEIGHT/2+8)      &lt;SPAN class=""&gt;//272&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;else&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_SIZE APP_IMG_WIDTH&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;endif&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_ULC_X ((APP_IMG_WIDTH / 2) - (APP_PS_WIDTH / 2))&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_ULC_Y ((APP_IMG_HEIGHT / 2) - (APP_PS_HEIGHT / 2))&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_LRC_X ((APP_IMG_WIDTH / 2) + (APP_PS_WIDTH / 2) - 1U)&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_LRC_Y ((APP_IMG_HEIGHT / 2) + (APP_PS_HEIGHT / 2) - 1U)&lt;/SPAN&gt;

&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_ULC_X1 ((APP_IMG_WIDTH / 2) - (APP_PS_HEIGHT / 2))&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_ULC_Y1 ((APP_IMG_HEIGHT / 2) - (APP_PS_WIDTH / 2))&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_LRC_X1 ((APP_IMG_WIDTH / 2) + (APP_PS_HEIGHT / 2) - 1U)&lt;/SPAN&gt;
&lt;SPAN class=""&gt;#&lt;SPAN class=""&gt;define&lt;/SPAN&gt; APP_PS_LRC_Y1 ((APP_IMG_HEIGHT / 2) + (APP_PS_WIDTH / 2) - 1U)&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;What is needed is an explanation of why these #define statements are part of the code.&lt;/P&gt;&lt;P&gt;In my own experiments, I get good result by just setting the PS corners to (0,0) and (width-1, height-1). &amp;nbsp;I set the output surface to the same dimensions because the reference manual tells me so:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;36.6.7 Output Surface Lower Right Coordinate (PXP_OUT_LRC)&lt;/P&gt;&lt;P&gt;This register contains the size, or lower right coordinate, of the output buffer NOT rotated. It is implied that the upper left coordinate of the output surface is always [0,0]. When rotating the framebuffer, the PXP will automatically swap the X/Y, or WIDTH/ HEIGHT, to accomodate the rotated size.&lt;/P&gt;</description>
      <pubDate>Sat, 04 Feb 2023 16:36:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/PXP-Rotation-setup/m-p/1593477#M23593</guid>
      <dc:creator>mborgerson</dc:creator>
      <dc:date>2023-02-04T16:36:25Z</dc:date>
    </item>
  </channel>
</rss>

