In Multithreaded Processing Unit 300, a thread execution priority may be specified for each thread type and Thread Selection Unit 315 may be configured to read thread entries based on the thread execution priority assigned to each thread type. A thread execution priority may be fixed, programmable, or dynamic. In one embodiment the thread execution priority may be fixed, always giving priority to execution of vertex threads and pixel threads are only executed if vertex threads are not available for execution. In another embodiment, Thread Selection Unit 315 is configured to read thread entries based on the amount of sample data in Pixel Input Buffer 215 and the amount of sample data in Vertex Input Buffer 220. Specifically, the thread execution priority may be tuned such that the number of pending pixels produced by processing vertex threads is adequate to achieve maximum utilization of the computation resources in Execution Pipelines 240 processing pixel threads.