valid: uploaded
sampler_conflict: Error: Error #3696: AGAL validation failed: Second use of sampler register needs to specify the exact same properties. At token 2 of fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
bad_header: ArgumentError: Error #3612: Programs must be in little endian format.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
truncated: ArgumentError: Error #3612: Programs must be in little endian format.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
empty: ArgumentError: Error #3615: AGAL validation failed: Program size below minimum length for  program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
bad_version: Error: Error #3615: AGAL validation failed: Program size below minimum length for fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
bad_shader_type: Error: Error #3615: AGAL validation failed: Program size below minimum length for fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
bad_opcode: Error: Error #3620: AGAL validation failed: Invalid opcode, value out of range: 255 at token 1 of fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
source_output: Error: Error #3646: AGAL validation failed: Can not read from output register for source operand 1 at token 1 of fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
source_sampler: Error: Error #3638: AGAL validation failed: Sampler register only allowed as second operand in texture instructions for source operand 1 at token 1 of fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
dest_constant: Error: Error #3652: AGAL validation failed: Constant registers can not be written to for destination operand at token 1 of fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
dest_attribute: Error: Error #3651: AGAL validation failed: Attribute registers can not be written to for destination operand at token 1 of vertex program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
dest_sampler: Error: Error #3649: AGAL validation failed: Sampler registers can not be written to for destination operand at token 1 of fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
dest_fragreg: Error: Error #3749: AGAL validation failed: Depth output register index out of bounds for destination operand at token 1 of fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
indirect_frag: Error: Error #3639: AGAL validation failed: Indirect addressing only allowed in vertex programs for source operand 1 at token 1 of fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
indirect_non_const: Error: Error #3640: AGAL validation failed: Indirect addressing only allowed into constant registers for source operand 1 at token 1 of vertex program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
indirect_valid: uploaded
source_fragreg: Error: Error #3749: AGAL validation failed: Depth output register index out of bounds for source operand 1 at token 1 of fragment program.
	at flash.display3D::Program3D/upload()
	at Test/tryUpload()
	at Test/contextCreated()
