<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic those asm code is from my in Developing Games on Intel Graphics</title>
    <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047958#M1066</link>
    <description>&lt;P&gt;&amp;nbsp;Asm code is from my kernel.asm ^^&lt;/P&gt;

&lt;P&gt;pixel_ptr is intialyse by, well i send u all project, C (code block project) and asm (nasm project) with notepad++ like editor:&lt;/P&gt;

&lt;P&gt;you need to install SDL, and for asm program, you need to change value of cx/bx by video number with 800*600 resolution. change only field of mode number.&lt;/P&gt;

&lt;P&gt;(you can change for higher resolution, but you will need change some constant data: rapport, ect, i don't remember other but doesn't matter for now ^^)&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;				; Return VBE Mode Information
					mov		ax, 0x4F01
					mov		cx, 0x115			; Mode number
					mov		di, ModeInfoBlock   ; Pointer to ModeInfoBlock structure
					int		0x10
			; Set VBE Mode
				mov		ax, 0x4F02
				mov		bx, 0_1_0_0_0_0_0_1_0_0_0_1_0_1_0_1b
						; 	| | | | | | | `-`-`-`-`-`-`-`-`----- Mode number: 0x115 = 800 * 600
						; 	| | | | | `-`---------------------- Reserved (must be 0)
						;   | | | | `------------------------- 0 = Use current default refresh rate, 1 = Use user specified CRTC values for refresh rate
						; 	| | `-`-------------------------- Reserved for VBE/AF (must be 0)
						; 	| `----------------------------- 0 = Use windowed frame buffer model, 1 = Use linear/flat frame buffer model
						; 	`------------------------------ 0 = Clear display memory, 1 = Don't clear display memory
				mov		di, CRTCInfoBlock
				int		0x10&lt;/PRE&gt;

&lt;P&gt;C project:&lt;/P&gt;

&lt;P&gt;&lt;A href="https://community.intel.com/legacyfs/online/drupal_files/409244"&gt;409244&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;ASM project: Some comment are in french.&lt;/P&gt;

&lt;P&gt;Ffor run it, go to 2.MAKE, run batch, then open disk (small icon) and choose one USB key empty, then select Removable Disk 1 (remove all other usb key for let only the test key), deselect open as readonly.&lt;/P&gt;

&lt;P&gt;Then copy all data from HackOS.bin to your usb key at start offset (0), save it, and boot your usb key on another PC or your actual PC.&lt;/P&gt;

&lt;P&gt;&lt;A href="https://community.intel.com/legacyfs/online/drupal_files/409247"&gt;409247&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;For found mode number, if it's don't work (0x115), run the program "list mode vesa.exe" who list all video mode number, include in zip.&lt;/P&gt;</description>
    <pubDate>Fri, 19 Sep 2014 19:20:59 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2014-09-19T19:20:59Z</dc:date>
    <item>
      <title>3D engine</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047900#M1008</link>
      <description>&lt;DIV class="forum-post-content"&gt;
	&lt;DIV class="field field-name-body field-type-text-with-summary field-label-hidden"&gt;
		&lt;DIV class="field-items"&gt;
			&lt;DIV class="field-item even"&gt;
				&lt;P&gt;Hello there,&lt;/P&gt;

				&lt;P&gt;ok, here we go, I have a dream, make a 3D engine 100% assembler intel only with CPU, I use rotation matrix only for now.&lt;/P&gt;

				&lt;P&gt;&lt;BR /&gt;
					it works of course, but it's slow when I put a lot of pixels.&lt;/P&gt;

				&lt;P&gt;Recently I decided to include voxels in my engine, and it's slow when I put&amp;gt; = 8000 voxels (20 * 20 * 20 cube) and when I saw that nvidia display 32M voxels (fire) I wonder how they can do it !&lt;/P&gt;

				&lt;P&gt;&lt;BR /&gt;
					&lt;BR /&gt;
					And I have a little idea of&amp;nbsp; the reason: MMU, paging, segmentation. memory.&lt;BR /&gt;
					&lt;BR /&gt;
					Am I right?&lt;/P&gt;

				&lt;P&gt;&lt;BR /&gt;
					&lt;BR /&gt;
					Another question, is the FPU is the slowest to compute floating point&amp;nbsp; than SSE or depending of data manipulate ?&lt;/P&gt;

				&lt;P&gt;&lt;BR /&gt;
					PS: I work without OS like Windows or Linux, I run on my own kernel + bootloader in assembly too with NASM.&lt;/P&gt;

				&lt;P&gt;Sorry if i don't wirte a good english, i'm french and use google translate ^-^&lt;/P&gt;
			&lt;/DIV&gt;
		&lt;/DIV&gt;
	&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 02 Sep 2014 16:18:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047900#M1008</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-02T16:18:10Z</dc:date>
    </item>
    <item>
      <title>And i use a pointer  on VESA</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047901#M1009</link>
      <description>&lt;DIV class="field field-name-comment-body field-type-text-long field-label-hidden"&gt;
	&lt;DIV class="field-items"&gt;
		&lt;DIV class="field-item even"&gt;
			&lt;P&gt;And i use a pointer&amp;nbsp; on VESA LFB for draw pixel.&lt;/P&gt;

			&lt;P&gt;Another question, i don't think understand what is the gpu into cpu intel core, i have this processor: &lt;A href="http://ark.intel.com/products/53464/intel-core-i7-2640m-processor-4m-cache-up-to-3_50-ghz"&gt;http://ark.intel.com/products/53464/intel-core-i7-2640m-processor-4m-cac...&lt;/A&gt;.&lt;/P&gt;

			&lt;P&gt;And have AMD Radeon HD 6470M like graphics card, so can i theoricaly switch gpu ? if yes how do it ^-^.&lt;BR /&gt;
				&lt;BR /&gt;
				Cuz i can't do it throung software: Windows Xp :(&lt;/P&gt;

			&lt;P&gt;Finnaly i want talk about mutlitasking method, i know modern OS use pagination memory for do it, but honnestly i hate this fragmentation of memory (RAM), so can i use my 2nd processor like a selector of code.&lt;/P&gt;

			&lt;P&gt;I mean this 2nd processor can have a personal memory who is fill by physical address of my program/task into RAM ? and every each sec for exemple, this 2nd processor jump to the next taks's address, and for execute it, he tell to main processor to jump in the address.&lt;/P&gt;

			&lt;P&gt;I know, if it's possible i would need a personal memory in RAM, so i will delimit at ADDR_TASK_END and ADDR_TASK_START like "segmentation" do it, but i think is more understandable and easier to learn multitasking and don't use all segmentation technologie ^-^.&lt;/P&gt;

			&lt;P&gt;I want to be master of all my RAM :p&lt;/P&gt;

			&lt;P&gt;What do you think, is it possible ?&lt;/P&gt;
		&lt;/DIV&gt;
	&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 02 Sep 2014 16:20:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047901#M1009</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-02T16:20:47Z</dc:date>
    </item>
    <item>
      <title>You clearly are using the</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047902#M1010</link>
      <description>&lt;P&gt;You clearly are using the processor in a very advanced way. I will do my best to answer your questions:&lt;/P&gt;

&lt;P&gt;1) Why is your voxel engine not able to efficiently render as many voxels as you'd like? Voxel engines need to maximize their use of parallelism (both threading and SIMD) and also to store the data efficiently in an octree or some other structure that can handle sparse data. If you are doing all these things and still not getting the performance you expect, it's an optimization problem. Some Intel tools like VTune Performance Analyzer are excellent for performance analysis.&lt;/P&gt;

&lt;P&gt;2) Is single data floating point math faster than SIMD (if I understood you)? Typically SIMD will be faster than single data instructions if your data is laid out in a way that supports the SIMD calls. In all cases, the only way for you to know for certain which way is faster is to test it.&lt;/P&gt;

&lt;P&gt;3) How can you select between discrete and processor graphics? DirectX has methods of enumerating adapters. In such a case, the processor graphics is listed separately from the discrete graphics. If you are choosing your adapter based on the amount of available memory, you may be favoring the processor graphics when you didn't intend to. Intel has sample code that shows how to properly detect adapters in DirectX at&amp;nbsp;https://software.intel.com/en-us/vcsource/samples/gpu-detect. The process for OpenGL is not well documented.&lt;/P&gt;

&lt;P&gt;4) Can I use one processor to control execution of a second processor? Probably not. The details on Intel processors are covered at&amp;nbsp;http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html. It's possible, though unlikely, that you'll be able to find something in there that can help you.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Sep 2014 17:56:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047902#M1010</guid>
      <dc:creator>Bradley_W_Intel</dc:creator>
      <dc:date>2014-09-02T17:56:38Z</dc:date>
    </item>
    <item>
      <title>Hello,</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047903#M1011</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;

&lt;P&gt;Thanks for your anwser, you probably right, it's an optimization problem, i will put AVX/AVX2 instructions later.&lt;/P&gt;

&lt;P&gt;When you talk about discrete and processor graphics and enumerating adapters, what do you mean, i'm noob in this domain.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Bye&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Sep 2014 19:50:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047903#M1011</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-02T19:50:51Z</dc:date>
    </item>
    <item>
      <title>And also for working on voxel</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047904#M1012</link>
      <description>&lt;P&gt;And also for working on voxel technique i work on pixel and not block like octree and anyway structure.&lt;/P&gt;

&lt;P&gt;I mean, create a cube fill on pixel/voxel in array, then i show this cube through rotation matrix.&lt;/P&gt;</description>
      <pubDate>Tue, 02 Sep 2014 20:38:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047904#M1012</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-02T20:38:05Z</dc:date>
    </item>
    <item>
      <title>Processor graphics = the</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047905#M1013</link>
      <description>&lt;P&gt;Processor graphics = the Intel graphics that are part of your processor. Discrete graphics = your Radeon card.&lt;/P&gt;</description>
      <pubDate>Tue, 02 Sep 2014 20:41:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047905#M1013</guid>
      <dc:creator>Bradley_W_Intel</dc:creator>
      <dc:date>2014-09-02T20:41:18Z</dc:date>
    </item>
    <item>
      <title>(pixel = 3D coordinate)</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047906#M1014</link>
      <description>&lt;P&gt;(pixel = &lt;SPAN class="short_text" id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;3D coordinate&lt;/SPAN&gt;&lt;/SPAN&gt;)&lt;/P&gt;</description>
      <pubDate>Tue, 02 Sep 2014 20:45:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047906#M1014</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-02T20:45:04Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;I want to be master of all</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047907#M1015</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 14.3999996185303px;"&gt;&amp;gt;&amp;gt;&amp;gt;I want to be master of all my RAM :p&amp;gt;&amp;gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 14.3999996185303px;"&gt;I fear that this is not really possible because OS is managing the resources.You can of course try to allocate phys memory and virtual memory as much as possible&amp;nbsp;until&amp;nbsp;you will crash your program.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Sep 2014 14:50:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047907#M1015</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-09-03T14:50:31Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;and when I saw that nvidia</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047908#M1016</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 14.3999996185303px;"&gt;&amp;gt;&amp;gt;&amp;gt;and when I saw that nvidia display 32M voxels (fire) I wonder how they can do it !&amp;gt;&amp;gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 14.3999996185303px;"&gt;Probably by offloading the job to the GPU.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Sep 2014 15:53:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047908#M1016</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-09-03T15:53:58Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047909#M1017</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I know, that's why i run my little 3D engine on my own OS, it's just a basic kernel who load VESA mode and i can use LFB for draw pixel on screen.&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Sep 2014 16:20:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047909#M1017</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-03T16:20:18Z</dc:date>
    </item>
    <item>
      <title>FInnaly for optimization, i</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047910#M1018</link>
      <description>&lt;P&gt;FInnaly for optimization, i forgot to tell you i use eMachines 350 with&lt;STRONG&gt; &lt;/STRONG&gt;Intel® Atom™ Processor N450 (512K Cache, 1.66 GHz)&amp;nbsp; for test :D.&lt;/P&gt;

&lt;P&gt;That's explain a little bit why it's ram, i test it on another PC with Intel celeron and it's better ^-^&lt;/P&gt;</description>
      <pubDate>Thu, 04 Sep 2014 00:43:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047910#M1018</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-04T00:43:04Z</dc:date>
    </item>
    <item>
      <title>Project                      </title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047911#M1019</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;

&lt;P&gt;ok finally i think to a project who using voxels, do you think is it possible ?&lt;/P&gt;

&lt;P&gt;Project &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Atom engine&lt;/P&gt;

&lt;P&gt;Steps:&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;- manage a lot of pixel, ( ~milliard HD) : actually can't manage more 40 * 40 * 40 coord/voxel/pixel/atom&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;- create object through object editor, can call 3D printer for accelerate process.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Attach all propriety of an atom to an coord/voxel/pixel.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Finnaly put all those coord/voxel/pixel/atom in a video game&lt;/P&gt;</description>
      <pubDate>Thu, 04 Sep 2014 14:35:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047911#M1019</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-04T14:35:37Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt; - manage a lot of pixel,</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047912#M1020</link>
      <description>&amp;gt;&amp;gt;&amp;gt; - manage a lot of pixel, ( ~milliard HD) : actually can't manage more 40 * 40 * 40 coord/voxel/pixel/atom&amp;gt;&amp;gt;&amp;gt;
Probably you meant total bandwidth per second.</description>
      <pubDate>Tue, 09 Sep 2014 08:26:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047912#M1020</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-09-09T08:26:35Z</dc:date>
    </item>
    <item>
      <title>well, normally yes but for me</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047913#M1021</link>
      <description>&lt;P&gt;well, normally yes but for me, my program crash when i want more pixel ^^&lt;/P&gt;</description>
      <pubDate>Wed, 10 Sep 2014 19:11:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047913#M1021</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-10T19:11:56Z</dc:date>
    </item>
    <item>
      <title>Quote:shaynox s. wrote:</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047914#M1022</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;shaynox s. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;well, normally yes but for me, my program crash when i want more pixel ^^&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Did you analyse dump file with GDB? Probably you have a segmentation error.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2014 10:18:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047914#M1022</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-09-11T10:18:04Z</dc:date>
    </item>
    <item>
      <title>i can't, i use nasm for it.</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047915#M1023</link>
      <description>&lt;P&gt;i can't, i use nasm for it.&lt;/P&gt;

&lt;P&gt;But i stoped my 3D engine, cause to those memory managment, make me crazy ^^&lt;/P&gt;

&lt;P&gt;Maybe i will read all &lt;A href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf"&gt;Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B, and 3C&lt;/A&gt; for found if there is an hack for avoid it.&lt;/P&gt;

&lt;P&gt;And you probably right, i create my cube with it:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;		mov		esi, Cube2_game
		call	voxel_cube
		mov		[end_scene], esi&lt;/PRE&gt;

&lt;PRE class="brush:bash;"&gt;	%define		cote_voxel_cube		105
        voxel_cube:
		mov		edx, 0xFF0000FF
		mov		eax, cote_voxel_cube
		fill_cube_volume:
			mov		ebx,  cote_voxel_cube 
			fill_cube_surface:
				mov		ecx,  cote_voxel_cube
				fill_cube_line: 
					mov			[esi + 0], eax		; x
					mov			[esi + 4], ebx		; y
					mov			[esi + 8], ecx		; z
					movdqu		xmm0, [esi]
						cvtdq2ps	xmm0, xmm0		; Convert coord.entier in float
					movdqu		[esi], xmm0
					mov			[esi + 12],	edx		; color_pixel
					add		esi, 16
				sub		ecx, 7
				cmp		ecx, -cote_voxel_cube
				jnle	fill_cube_line
			sub		ebx, 7
			cmp		ebx, -cote_voxel_cube
			jnle	fill_cube_surface
		sub		eax, 7
		cmp		eax, -cote_voxel_cube
		jnle	fill_cube_volume
	ret
	;=====================
	; / void voxel_cube ()
	;=====================&lt;/PRE&gt;

&lt;P&gt;This label "Cube2_game:" is located at the end of my kernel.asm, it's a little bit like malloc, and erase all data after kernel's location: [ORG 0x1000] for put my voxel cube, i know BIOS like to put some random data's location, so i guess it's cause to that.&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;	end_scene	dd	0
	Cube2_game:&lt;/PRE&gt;

&lt;P&gt;I can link my bootloader and kernel here, but some comment is french, i can translate if you want (! &lt;SPAN class="short_text" id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;approximate &lt;/SPAN&gt;&lt;/SPAN&gt;eng !).&lt;/P&gt;

&lt;P&gt;Finnaly can you explain me, how work aligned/unligned data ?&lt;/P&gt;

&lt;P&gt;Before i put movdqa instead movdqu in this function:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;	;=============
	 ; void clear_screen (void)
	 ; Clearing the screen
	 ; Input : esi - name of object to erase
	 ; Output: Ecran
	 ; Destroyed: ecx - edi
	;=============	 
	clear_screen:
		mov		edi, [PhysBasePtr]
		mov		ecx, (WIDTH*LENGTH*4)/16 	;	mov		ecx, (WIDTH*LENGTH)/8
		xorps	xmm0, xmm0					;	vxorps	ymm1, ymm1		; 256 bit instruction !
		clear_s:
			movdqu 	[edi], xmm0				;	vmovapd	[edi], ymm1		; 256 bit instruction !
			add		edi, 16					;	add		edi, 32
		loop	clear_s
	ret
	;===============
	; / clear_screen
	;===============
&lt;/PRE&gt;

&lt;P&gt;And it was more slow than movdqu, i don't get it, in my mind this instruction copy just the source: xmm0 to destination: [edi].&lt;/P&gt;

&lt;P&gt;Strange, and yes even if movdqu is faster, it's still low: i mean i see the execution of this function on screen.&lt;/P&gt;

&lt;P&gt;And what about buffer you will say me, well i don't think, don't need this. Because the linear frame buffer is a already a buffer, and if i have problem of display with one buffer, i didn't imagine if i draw with 3 buffer.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Ps: Can you add a new tag code for assembly ? thanks&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2014 15:30:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047915#M1023</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-11T15:30:51Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;But i stoped my 3D engine,</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047916#M1024</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 11.8181819915771px; line-height: 16.3636360168457px;"&gt;&amp;gt;&amp;gt;&amp;gt;But i stoped my 3D engine, cause to those memory managment, make me crazy&amp;gt;&amp;gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 11.8181819915771px; line-height: 16.3636360168457px;"&gt;Why do not you try to develop 3D engine in C++ for Windows or Linux? I am also at early stage of developing my own engine , but I am writing it in C++ and inline assembly.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2014 18:42:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047916#M1024</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-09-11T18:42:24Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;Finnaly can you explain me</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047917#M1025</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 11.8181819915771px; line-height: 16.3636360168457px;"&gt;&amp;gt;&amp;gt;&amp;gt;Finnaly can you explain me, how work aligned/unligned data ?&amp;gt;&amp;gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 11.8181819915771px; line-height: 16.3636360168457px;"&gt;Please read following article:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://software.intel.com/en-us/articles/reducing-the-impact-of-misaligned-memory-accesses" target="_blank"&gt;https://software.intel.com/en-us/articles/reducing-the-impact-of-misaligned-memory-accesses&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2014 18:45:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047917#M1025</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-09-11T18:45:04Z</dc:date>
    </item>
    <item>
      <title>@shaynox</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047918#M1026</link>
      <description>&lt;P&gt;@shaynox&lt;/P&gt;

&lt;P&gt;How do you call VESA API?&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2014 18:46:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047918#M1026</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-09-11T18:46:06Z</dc:date>
    </item>
    <item>
      <title>"Why do not you try to</title>
      <link>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047919#M1027</link>
      <description>&lt;P&gt;"Why do not you try to develop 3D engine in C++ for Windows or Linux?"&lt;/P&gt;

&lt;P&gt;Because i would like to run a game without OS, or mine (in &lt;SPAN class="short_text" id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;development&lt;/SPAN&gt;&lt;/SPAN&gt;) and without directx or opengl, sound like chalenge, and i like to be free (love assembler) untill i see pagination mechanism.&lt;/P&gt;

&lt;P&gt;And for VESA API, i mean just function for found LFB ptr:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;	ModeInfoBlock:
		; Mandatory information for all VBE revisions
			ModeAttributes 				dw 	0 			; mode attributes
			WinAAttributes 				db 	0 			; window A attributes
			WinBAttributes 				db 	0 			; window B attributes
			WinGranularity 				dw 	0 			; window granularity
			WinSize 					dw 	0 			; window size
			WinASegment 				dw 	0 			; window A start segment
			WinBSegment 				dw 	0 			; window B start segment
			WinFuncPtr 					dd 	0 			; real mode pointer to windowfunction
			BytesPerScanLine 			dw 	0 			; bytes per scan line
		
		; Mandatory information for VBE 1.2 and above
			XResolution 				dw 	0 			; horizontal resolution in pixels or characters
			YResolution 				dw 	0 			; vertical resolution in pixels or characters
			XCharSize 					db 	0 			; character cell width in pixels
			YCharSize 					db 	0 			; character cell height in pixels
			NumberOfPlanes 				db 	0 			; number of memory planes
			BitsPerPixel 				db 	0 			; bits per pixel
			NumberOfBanks 				db 	0 			; number of banks
			MemoryModel 				db 	0 			; memory model type
			BankSize 					db	0 			; bank size in KB
			NumberOfImagePages 			db 	0 			; number of images
			Reserved 					db 	1 			; reserved for page function
		
		; Direct Color fields (required for direct/6 and YUV/7 memory models)
			RedMaskSize 				db 	0 			; size of direct color red mask in bits
			RedFieldPosition			db 	0 			; bit position of lsb of red mask
			GreenMaskSize 				db 	0 			; size of direct color green mask in bits
			GreenFieldPosition 			db 	0 			; bit position of lsb of green mask
			BlueMaskSize 				db 	0 			; size of direct color blue mask in bits
			BlueFieldPosition 			db 	0 			; bit position of lsb of blue mask
			RsvdMaskSize 				db 	0 			; size of direct color reserved mask in bits
			RsvdFieldPosition 			db 	0 			; bit position of lsb of reserved mask
			DirectColorModeInfo 		db 	0 			; direct color mode attributes
		
		; Mandatory information for VBE 2.0 and above
			PhysBasePtr 				dd 	0 			; physical address for flat memory frame buffer
										dd 	0 			; Reserved - always set to 0
										dw 	0 			; Reserved - always set to 0
		
		; Mandatory information for VBE 3.0 and above
			LinBytesPerScanLine 		dw 	0 			; bytes per scan line for linear modes
			BnkNumberOfImagePages 		db 	0 			; number of images for banked modes
			LinNumberOfImagePages 		db 	0 			; number of images for linear modes
			LinRedMaskSize 				db 	0			; size of direct color red mask (linear modes)
			LinRedFieldPosition			db 	0 			; bit position of lsb ofred mask (linear modes)
			LinGreenMaskSize 			db 	0 			; size of direct color green mask (linear modes)
			LinGreenFieldPositiondb 	db	0 			; bit position of lsb of green mask (linear modes)
			LinBlueMaskSize 			db 	0 			; size of direct color blue mask (linear modes)
			LinBlueFieldPosition 		db 	0 			; bit position of lsb of blue mask (linear modes)
			LinRsvdMaskSize 			db 	0 			; size of direct color reserved mask (linear modes)
			LinRsvdFieldPosition 		db 	0 			; bit position of lsb of reserved mask (linear modes)
			MaxPixelClock 				dd 	0 			; maximum pixel clock (in Hz) for graphics mode
			times	189					db 	0			; reserved area remainder of ModeInfoBlock&lt;/PRE&gt;

&lt;PRE class="brush:bash;"&gt;				; Return VBE Mode Information
					mov		ax, 0x4F01
					mov		cx, 0x115           ; Mode number = 800 * 600
					mov		di, ModeInfoBlock   ; Pointer to ModeInfoBlock structure
					int		0x10

				; Set VBE Mode
					mov		ax, 0x4F02
					mov		bx, 0x4115           ; ( for 800 x 600 )
											; D0-D8		=  		Mode number 
											; D9-D10 	= 0		Reserved (must be 0)
											; D11 		= 0 	Use current default refresh rate
											; 			= 1  	Use user specified CRTC values for refresh rate
											; D12-13 	= 0 	Reserved for VBE/AF (must be 0)
											; D14 		= 0 	Use windowed frame buffer model
											; 			= 1		Use linear/flat frame buffer model
											; D15  		= 0 	Clear display memory
											; 			= 1		Don't clear display memory
					int		0x10&lt;/PRE&gt;

&lt;PRE class="brush:bash;"&gt;				mov		edi, [PhysBasePtr]
				mov		[edi], 0xFF_FF_FF_FF     ; 0xAA_RR_BB_GG white&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Sep 2014 19:24:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Developing-Games-on-Intel/3D-engine/m-p/1047919#M1027</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-11T19:24:47Z</dc:date>
    </item>
  </channel>
</rss>

