Lines Matching refs:data
65 static void gen6_update_vertex_buffer(struct kgem *kgem, const uint32_t *data)
67 uint32_t reloc = sizeof(uint32_t) * (&data[1] - kgem->batch);
89 i = data[0] >> 26;
93 state.vb[i].pitch = data[0] & 0x7ff;
134 get_ve_component(uint32_t data, int component)
136 return (data >> (16 + (3 - component) * 4)) & 0x7;
139 static void gen6_update_vertex_elements(struct kgem *kgem, int id, const uint32_t *data)
141 state.ve[id].buffer = data[0] >> 26;
142 state.ve[id].valid = !!(data[0] & (1 << 25));
143 state.ve[id].type = (data[0] >> 16) & 0x1ff;
144 state.ve[id].offset = data[0] & 0x7ff;
145 state.ve[id].swizzle[0] = get_ve_component(data[1], 0);
146 state.ve[id].swizzle[1] = get_ve_component(data[1], 1);
147 state.ve[id].swizzle[2] = get_ve_component(data[1], 2);
148 state.ve[id].swizzle[3] = get_ve_component(data[1], 3);
151 static void gen6_update_sf_state(struct kgem *kgem, uint32_t *data)
153 state.num_ve = 1 + ((data[1] >> 22) & 0x3f);
280 static void primitive_out(struct kgem *kgem, uint32_t *data)
284 assert((data[0] & (1<<15)) == 0); /* XXX index buffers */
286 for (n = 0; n < data[1]; n++) {
287 int v = data[2] + n;
300 state_base_out(uint32_t *data, uint32_t offset, unsigned int index,
303 if (data[index] & 1)
304 kgem_debug_print(data, offset, index,
306 name, data[index] & ~1);
308 kgem_debug_print(data, offset, index,
314 state_max_out(uint32_t *data, uint32_t offset, unsigned int index,
317 if (data[index] == 1)
318 kgem_debug_print(data, offset, index,
320 else if (data[index] & 1)
321 kgem_debug_print(data, offset, index,
323 name, data[index] & ~1);
325 kgem_debug_print(data, offset, index,
357 get_965_element_component(uint32_t data, int component)
359 uint32_t component_control = (data >> (16 + (3 - component) * 4)) & 0x7;
386 get_965_prim_type(uint32_t data)
388 uint32_t primtype = (data >> 10) & 0x1f;
634 uint32_t *data = kgem->batch + offset;
640 len = (data[0] & 0xff) + 2;
641 op = (data[0] & 0xffff0000) >> 16;
645 kgem_debug_print(data, offset, i++, "STATE_BASE_ADDRESS\n");
649 state_base_out(data, offset, i++, "general");
650 state_base_out(data, offset, i++, "surface");
651 state_base_out(data, offset, i++, "dynamic");
652 state_base_out(data, offset, i++, "indirect");
653 state_base_out(data, offset, i++, "instruction");
655 state_max_out(data, offset, i++, "general");
656 state_max_out(data, offset, i++, "dynamic");
657 state_max_out(data, offset, i++, "indirect");
658 state_max_out(data, offset, i++, "instruction");
664 state_base_out(data, offset, i++, "general");
665 state_base_out(data, offset, i++, "surface");
666 state_base_out(data, offset, i++, "media");
667 state_base_out(data, offset, i++, "instruction");
669 state_max_out(data, offset, i++, "general");
670 state_max_out(data, offset, i++, "media");
671 state_max_out(data, offset, i++, "instruction");
680 kgem_debug_print(data, offset, 0,
683 (data[0] & (1 << 8)) != 0,
684 (data[0] & (1 << 9)) != 0,
685 (data[0] & (1 << 12)) != 0);
686 kgem_debug_print(data, offset, 1, "VS binding table\n");
687 kgem_debug_print(data, offset, 2, "GS binding table\n");
688 kgem_debug_print(data, offset, 3, "WM binding table\n");
692 kgem_debug_print(data, offset, 0,
694 kgem_debug_print(data, offset, 1, "VS binding table\n");
695 kgem_debug_print(data, offset, 2, "GS binding table\n");
696 kgem_debug_print(data, offset, 3, "CLIP binding table\n");
697 kgem_debug_print(data, offset, 4, "SF binding table\n");
698 kgem_debug_print(data, offset, 5, "WM binding table\n");
705 kgem_debug_print(data, offset, 0, "3DSTATE_SAMPLER_STATE_POINTERS: VS mod %d, "
707 (data[0] & (1 << 8)) != 0,
708 (data[0] & (1 << 9)) != 0,
709 (data[0] & (1 << 12)) != 0);
710 kgem_debug_print(data, offset, 1, "VS sampler state\n");
711 kgem_debug_print(data, offset, 2, "GS sampler state\n");
712 kgem_debug_print(data, offset, 3, "WM sampler state\n");
713 gen6_decode_sampler_state(kgem, &data[3]);
718 kgem_debug_print(data, offset, 0, "3DSTATE_VERTEX_BUFFERS\n");
721 gen6_update_vertex_buffer(kgem, data + i);
723 kgem_debug_print(data, offset, i, "buffer %d: %s, pitch %db\n",
724 data[i] >> 26,
725 data[i] & (1 << 20) ? "random" : "sequential",
726 data[i] & 0x07ff);
728 kgem_debug_print(data, offset, i++, "buffer address\n");
729 kgem_debug_print(data, offset, i++, "max index\n");
730 kgem_debug_print(data, offset, i++, "mbz\n");
736 kgem_debug_print(data, offset, 0, "3DSTATE_VERTEX_ELEMENTS\n");
739 gen6_update_vertex_elements(kgem, (i - 1)/2, data + i);
741 kgem_debug_print(data, offset, i, "buffer %d: %svalid, type 0x%04x, "
743 data[i] >> 26,
744 data[i] & (1 << 25) ? "" : "in",
745 (data[i] >> 16) & 0x1ff,
746 data[i] & 0x07ff);
748 kgem_debug_print(data, offset, i, "(%s, %s, %s, %s), "
750 get_965_element_component(data[i], 0),
751 get_965_element_component(data[i], 1),
752 get_965_element_component(data[i], 2),
753 get_965_element_component(data[i], 3),
754 (data[i] & 0xff) * 4);
761 kgem_debug_print(data, offset, 0, "3DSTATE_VIEWPORT_STATE_POINTERS\n");
762 kgem_debug_print(data, offset, 1, "clip\n");
763 kgem_debug_print(data, offset, 2, "sf\n");
764 kgem_debug_print(data, offset, 3, "cc\n");
769 kgem_debug_print(data, offset, 0, "3DSTATE_INDEX_BUFFER\n");
770 kgem_debug_print(data, offset, 1, "beginning buffer address\n");
771 kgem_debug_print(data, offset, 2, "ending buffer address\n");
776 kgem_debug_print(data, offset, 0, "3DSTATE_CC_STATE_POINTERS\n");
777 kgem_debug_print(data, offset, 1, "blend%s\n",
778 data[1] & 1 ? " update" : "");
779 if (data[1] & 1)
780 gen6_decode_blend(kgem, data+1);
781 kgem_debug_print(data, offset, 2, "depth+stencil%s\n",
782 data[2] & 1 ? " update" : "");
783 kgem_debug_print(data, offset, 3, "cc%s\n",
784 data[3] & 1 ? " update" : "");
789 kgem_debug_print(data, offset, 0, "3DSTATE_SCISSOR_POINTERS\n");
790 kgem_debug_print(data, offset, 1, "scissor rect offset\n");
795 kgem_debug_print(data, offset, 0, "3DSTATE_VS\n");
796 kgem_debug_print(data, offset, 1, "kernel pointer\n");
797 kgem_debug_print(data, offset, 2, "SPF=%d, VME=%d, Sampler Count %d, "
799 (data[2] >> 31) & 1,
800 (data[2] >> 30) & 1,
801 (data[2] >> 27) & 7,
802 (data[2] >> 18) & 0xff);
803 kgem_debug_print(data, offset, 3, "scratch offset\n");
804 kgem_debug_print(data, offset, 4, "Dispatch GRF start %d, VUE read length %d, "
806 (data[4] >> 20) & 0x1f,
807 (data[4] >> 11) & 0x3f,
808 (data[4] >> 4) & 0x3f);
809 kgem_debug_print(data, offset, 5, "Max Threads %d, Vertex Cache %sable, "
811 ((data[5] >> 25) & 0x7f) + 1,
812 (data[5] & (1 << 1)) != 0 ? "dis" : "en",
813 (data[5] & 1) != 0 ? "en" : "dis");
818 kgem_debug_print(data, offset, 0, "3DSTATE_GS\n");
819 kgem_debug_print(data, offset, 1, "kernel pointer\n");
820 kgem_debug_print(data, offset, 2, "SPF=%d, VME=%d, Sampler Count %d, "
822 (data[2] >> 31) & 1,
823 (data[2] >> 30) & 1,
824 (data[2] >> 27) & 7,
825 (data[2] >> 18) & 0xff);
826 kgem_debug_print(data, offset, 3, "scratch offset\n");
827 kgem_debug_print(data, offset, 4, "Dispatch GRF start %d, VUE read length %d, "
829 (data[4] & 0xf),
830 (data[4] >> 11) & 0x3f,
831 (data[4] >> 4) & 0x3f);
832 kgem_debug_print(data, offset, 5, "Max Threads %d, Rendering %sable\n",
833 ((data[5] >> 25) & 0x7f) + 1,
834 (data[5] & (1 << 8)) != 0 ? "en" : "dis");
835 kgem_debug_print(data, offset, 6, "Reorder %sable, Discard Adjaceny %sable, "
837 (data[6] & (1 << 30)) != 0 ? "en" : "dis",
838 (data[6] & (1 << 29)) != 0 ? "en" : "dis",
839 (data[6] & (1 << 15)) != 0 ? "en" : "dis");
844 kgem_debug_print(data, offset, 0, "3DSTATE_CLIP\n");
845 kgem_debug_print(data, offset, 1, "UserClip distance cull test mask 0x%x\n",
846 data[1] & 0xff);
847 kgem_debug_print(data, offset, 2, "Clip %sable, API mode %s, Viewport XY test %sable, "
851 (data[2] & (1 << 31)) != 0 ? "en" : "dis",
852 (data[2] & (1 << 30)) != 0 ? "D3D" : "OGL",
853 (data[2] & (1 << 28)) != 0 ? "en" : "dis",
854 (data[2] & (1 << 27)) != 0 ? "en" : "dis",
855 (data[2] & (1 << 26)) != 0 ? "en" : "dis",
856 (data[2] >> 13) & 7,
857 (data[2] & (1 << 9)) != 0 ? "dis" : "en",
858 (data[2] & (1 << 8)) != 0 ? "en" : "dis",
859 (data[2] >> 4) & 3,
860 (data[2] >> 2) & 3,
861 (data[2] & 3));
862 kgem_debug_print(data, offset, 3, "Min PointWidth %d, Max PointWidth %d, "
864 (data[3] >> 17) & 0x7ff,
865 (data[3] >> 6) & 0x7ff,
866 (data[3] & (1 << 5)) != 0 ? "en" : "dis",
867 (data[3] & 0xf));
871 gen6_update_sf_state(kgem, data);
873 kgem_debug_print(data, offset, 0, "3DSTATE_SF\n");
874 kgem_debug_print(data, offset, 1, "Attrib Out %d, Attrib Swizzle %sable, VUE read length %d, "
876 (data[1] >> 22) & 0x3f,
877 (data[1] & (1 << 21)) != 0 ? "en" : "dis",
878 (data[1] >> 11) & 0x1f,
879 (data[1] >> 4) & 0x3f);
880 kgem_debug_print(data, offset, 2, "Legacy Global DepthBias %sable, FrontFace fill %d, BF fill %d, "
882 (data[2] & (1 << 11)) != 0 ? "en" : "dis",
883 (data[2] >> 5) & 3,
884 (data[2] >> 3) & 3,
885 (data[2] & (1 << 1)) != 0 ? "en" : "dis",
886 (data[2] & 1) != 0 ? "CCW" : "CW");
887 kgem_debug_print(data, offset, 3, "AA %sable, CullMode %d, Scissor %sable, Multisample m ode %d\n",
888 (data[3] & (1 << 31)) != 0 ? "en" : "dis",
889 (data[3] >> 29) & 3,
890 (data[3] & (1 << 11)) != 0 ? "en" : "dis",
891 (data[3] >> 8) & 3);
892 kgem_debug_print(data, offset, 4, "Last Pixel %sable, SubPixel Precision %d, Use PixelWidth %d\n",
893 (data[4] & (1 << 31)) != 0 ? "en" : "dis",
894 (data[4] & (1 << 12)) != 0 ? 4 : 8,
895 (data[4] & (1 << 11)) != 0);
896 kgem_debug_print(data, offset, 5, "Global Depth Offset Constant %f\n", unpack_float(data[5]));
897 kgem_debug_print(data, offset, 6, "Global Depth Offset Scale %f\n", unpack_float(data[6]));
898 kgem_debug_print(data, offset, 7, "Global Depth Offset Clamp %f\n", unpack_float(data[7]));
900 kgem_debug_print(data, offset, i+8, "Attrib %d (Override %s%s%s%s, Const Source %d, Swizzle Select %d, "
903 (data[8+i] & (1 << 31)) != 0 ? "W":"",
904 (data[8+i] & (1 << 30)) != 0 ? "Z":"",
905 (data[8+i] & (1 << 29)) != 0 ? "Y":"",
906 (data[8+i] & (1 << 28)) != 0 ? "X":"",
907 (data[8+i] >> 25) & 3, (data[8+i] >> 22) & 3,
908 (data[8+i] >> 16) & 0x1f,
910 (data[8+i] & (1 << 15)) != 0 ? "W":"",
911 (data[8+i] & (1 << 14)) != 0 ? "Z":"",
912 (data[8+i] & (1 << 13)) != 0 ? "Y":"",
913 (data[8+i] & (1 << 12)) != 0 ? "X":"",
914 (data[8+i] >> 9) & 3, (data[8+i] >> 6) & 3,
915 (data[8+i] & 0x1f));
916 kgem_debug_print(data, offset, 16, "Point Sprite TexCoord Enable\n");
917 kgem_debug_print(data, offset, 17, "Const Interp Enable\n");
918 kgem_debug_print(data, offset, 18, "Attrib 7-0 WrapShortest Enable\n");
919 kgem_debug_print(data, offset, 19, "Attrib 15-8 WrapShortest Enable\n");
925 kgem_debug_print(data, offset, 0, "3DSTATE_WM\n");
926 kgem_debug_print(data, offset, 1, "kernel start pointer 0\n");
927 kgem_debug_print(data, offset, 2, "SPF=%d, VME=%d, Sampler Count %d, "
929 (data[2] >> 31) & 1,
930 (data[2] >> 30) & 1,
931 (data[2] >> 27) & 7,
932 (data[2] >> 18) & 0xff);
933 kgem_debug_print(data, offset, 3, "scratch offset\n");
934 kgem_debug_print(data, offset, 4, "Depth Clear %d, Depth Resolve %d, HiZ Resolve %d, "
936 (data[4] & (1 << 30)) != 0,
937 (data[4] & (1 << 28)) != 0,
938 (data[4] & (1 << 27)) != 0,
939 (data[4] >> 16) & 0x7f,
940 (data[4] >> 8) & 0x7f,
941 (data[4] & 0x7f));
942 kgem_debug_print(data, offset, 5, "MaxThreads %d, PS KillPixel %d, PS computed Z %d, "
945 ((data[5] >> 25) & 0x7f) + 1,
946 (data[5] & (1 << 22)) != 0,
947 (data[5] & (1 << 21)) != 0,
948 (data[5] & (1 << 20)) != 0,
949 (data[5] & (1 << 19)) != 0,
950 (data[5] & (1 << 8)) != 0,
951 (data[5] & (1 << 2)) != 0,
952 (data[5] & (1 << 1)) != 0,
953 (data[5] & (1 << 0)) != 0);
954 kgem_debug_print(data, offset, 6, "Num SF output %d, Pos XY offset %d, ZW interp mode %d , "
957 (data[6] >> 20) & 0x3f,
958 (data[6] >> 18) & 3,
959 (data[6] >> 16) & 3,
960 (data[6] >> 10) & 0x3f,
961 (data[6] & (1 << 9)) != 0,
962 (data[6] >> 1) & 3,
963 (data[6] & 1));
964 kgem_debug_print(data, offset, 7, "kernel start pointer 1\n");
965 kgem_debug_print(data, offset, 8, "kernel start pointer 2\n");
971 kgem_debug_print(data, offset, 0,
973 kgem_debug_print(data, offset, 1, "top left: %d, %d\n",
974 (uint16_t)(data[1] & 0xffff),
975 (uint16_t)(data[1] >> 16));
976 kgem_debug_print(data, offset, 2, "bottom right: %d, %d\n",
977 (uint16_t)(data[2] & 0xffff),
978 (uint16_t)(data[2] >> 16));
979 kgem_debug_print(data, offset, 3, "origin: %d, %d\n",
980 (int16_t)(data[3] & 0xffff),
981 (int16_t)(data[3] >> 16));
986 kgem_debug_print(data, offset, 0,
988 kgem_debug_print(data, offset, 1, "%s, %s, pitch = %d bytes, %stiled, HiZ %d, Separate Stencil %d\n",
989 get_965_surfacetype(data[1] >> 29),
990 get_965_depthformat((data[1] >> 18) & 0x7),
991 (data[1] & 0x0001ffff) + 1,
992 data[1] & (1 << 27) ? "" : "not ",
993 (data[1] & (1 << 22)) != 0,
994 (data[1] & (1 << 21)) != 0);
995 kgem_debug_print(data, offset, 2, "depth offset\n");
996 kgem_debug_print(data, offset, 3, "%dx%d\n",
997 ((data[3] & 0x0007ffc0) >> 6) + 1,
998 ((data[3] & 0xfff80000) >> 19) + 1);
999 kgem_debug_print(data, offset, 4, "volume depth\n");
1000 kgem_debug_print(data, offset, 5, "\n");
1001 kgem_debug_print(data, offset, 6, "\n");
1006 switch ((data[1] >> 14) & 0x3) {
1012 kgem_debug_print(data, offset, 0, "PIPE_CONTROL\n");
1013 kgem_debug_print(data, offset, 1,
1018 data[1] & (1 << 20) ? "" : "no ",
1019 data[1] & (1 << 18) ? "" : "no ",
1020 data[1] & (1 << 17) ? "" : "no ",
1021 data[1] & (1 << 13) ? "" : "no ",
1022 data[1] & (1 << 12) ? "" : "no ",
1023 data[1] & (1 << 11) ? "" : "no ",
1024 data[1] & (1 << 10) ? "" : "no ");
1026 kgem_debug_print(data, offset, 2, "destination address\n");
1027 kgem_debug_print(data, offset, 3, "immediate dword low\n");
1028 kgem_debug_print(data, offset, 4, "immediate dword high\n");
1031 kgem_debug_print(data, offset, i, "\n");
1038 kgem_debug_print(data, offset, 0,
1040 get_965_prim_type(data[0]),
1041 (data[0] & (1 << 15)) ? "random" : "sequential");
1042 kgem_debug_print(data, offset, 1, "vertex count\n");
1043 kgem_debug_print(data, offset, 2, "start vertex\n");
1044 kgem_debug_print(data, offset, 3, "instance count\n");
1045 kgem_debug_print(data, offset, 4, "start instance\n");
1046 kgem_debug_print(data, offset, 5, "index bias\n");
1047 primitive_out(kgem, data);
1059 kgem_debug_print(data, offset, 0, "%s\n", opcodes[i].name);
1061 len = (data[0] & 0xff) + 2;
1067 kgem_debug_print(data, offset, i, "dword %d\n", i);