تاکنون دیدیم که GPU چگونه تعداد زیادی ترد موازی را مدیریت می‌کند. هر کدام از آن ها وظیفه تخصیص رنگ، به جزیی ( fragment ) از تصویر را دارند. با اینکه هر ترد موازی نسبت به دیگران کور است، اما باید بتوانیم از CPU ورودی هایی به همه ترد ها ارسال کنیم. به دلیل معماری کارت گرافیک، این ورودی ها برای همه ترد ها یکسان هستند و فقط بصورت خواندنی ( read only ) به عبارتی هر ترد اطلاعات مشابهی را دریافت می‌کند که می‌تواند بخواند، اما نمی‌تواند تغییر دهد. به این ورودی ها یونیفرم ( uniform ) گفته می‌شود. و معمولا به صورت تایپ های مقابل استفاده می‌شوند. یونیفرم ها در بالای شیدر، پس از تعریف دقت نقطه شناور پیشفرض تعریف می‌شوند. یونیفرم ها را می‌توان مانند پل های کوچک بین CPU و GPU تصور کرد. نام ها در محیط های مختلف ممکن از تفاوت داشته باشند، اما در این مجموعه از مثال ها همیشه این نام ها ثابتند: (زمان بر حسب ثانیه از شروع شیدر) ، (اندازه کنوس، جایی که شیدر کشیده می‌شود) و (موقعیت ماوس در داخل کنوس بر حسب پیکسل) من این قرار داد را دنبال می‌کنم که قبل یونیفرم ها u _ بگذارم، اما شکل های دیگری هم ممکن است به چشمتان بخورد، مثلا ShaderToy . com از همین یونیفرم ها اما به شکل زیر استفاده کرده است. صحبت کردن کافیست بیایید یونیفرم ها را در عمل ببینیم. در کد زیر ما از استفاده می‌کنیم. یعنی تعداد ثانیه از زمانی که شیدر شروع شده است را به همراه عملکرد سینوس برای تحریک مقدار قرمز به کار گرفتیم. تعامل در کد بالا در به همان صورت که GLSL به ما یک خروجی می‌دهد، همچنین یک ورودی پیشفرض در نظر دارد. تعامل در کد بالا در