1. A method comprising: determining whether instructions for execution by a programmable graphics processor include a memory operation to shared variable data accessible by the programmable graphics processor and a programmable processor; modifying the instructions to include a first synchronization operation and a second synchronization operation after the memory operation, wherein the first and second synchronization operations each comprise a memory coherency operation, wherein the first synchronization operation is a store-with-release operation and the second synchronization operation is a load-with-acquire operation; executing the memory operation; executing the first synchronization operation; and executing the second synchronization operation.